深入浅出JavaScript的原型

156 阅读1分钟

前言:Js的原型就几句话的事情,搞清每个属性的作用,多打打例子,那么困惑就会迎刃而解 

一 : 总结一下原型上的三个属性 Protype ,__proto__ ,constructor.

(1) 在Js当中万物皆是对象.

(2)__proto__ :对象才会拥有的属性。作用访问对象的属性,如果该对象内部不存在这个属性,他就会通过__proto__向他的父级对象寻找,逐级向上寻找,通过_proto_链接.终点为null。这就是我们所说的原型链.

(3) constructor 对象才会拥有的属性。作用 返回该对象的构造函数。

(3)protype:函数才会有的属性。作用就是让该函数所实例化的对象们都可以找到公用的属性和方法是函数.

(4)当函数创建时会自动生成一个Function.protype 对象。

看完好好思考一下这个例子,在结合关系图,我相信你很快就能明白的 

 function Foo() {} let foo = new Foo(); console.log(foo.__proto__ === Foo.prototype)
 console.log(Foo.prototype.constructor === Foo)
 console.dir(Foo.prototype.__proto__ == foo.__proto__.__proto__)