JavaScript 实现面向对象(入门)

来源:互联网 发布:德力西 知乎 编辑:程序博客网 时间:2024/03/29 06:31

众所周知,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
})();

0 0