JavaScript 实现面向对象(入门)

本文介绍了在ES5中如何通过原型和原型链实现面向对象编程。解释了prototype与__proto__的区别及其在继承机制中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

众所周知,JavaScript最初是一门面向过程的语言,但自ECMAScript 6起,JS也有了类的实现,具体的标准请看这里ES6中类的定义戳我 ,但是由于现在大多数主流浏览器对ES6的支持还不普遍。所以在ES5中人们就已另一种方式实现了面向对象 的这个概念。
在接下来的一段代码中,可能会用到 原型prototype)和 原型链__proto__)这两个属性,先来介绍一下他们二者的区别。

(1) prototype : prototype 是属于 Function 的一个属性(其实这句话并不完全正确,因为它有特殊情况,后面会提到),我们创建的每一个 Function 都有一个 prototype 属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法

(2)__proto__:__proto__ 是属于 Object 的一个属性,你可以把它也看作是一个指针,它所指向的是构造当前 Object 的 Function 的 prototype,即如下代码。

“`
(function(){
function Fun() {}
Obj = new Fun();
console.log(Obj.proto === Fun.prototype); //true
})();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值