JavaScript原型的理解

1.对象:自身属性;构造器属性(constructor);原型(__proto__)

2.函数(构造方法):自身属性;构造器属性(constructor);原型属性(prototype);原型(__proto__)

3.对象.原型(__proto__) === 函数(构造方法).原型属性(prototype)

4.对象.构造器属性 === 函数(构造方法)

5.每个函数都有一个原型属性,不管是构造函数还是普通函数,函数的原型属性与函数的原型不是同一个概念,怎么理解呢?当说到函数的原型属性时,此时函数的定位就是函数,

每个函数都会有一个原型属性;当说到函数的原型时,此时函数的定位是一个对象(函数也是一个对象),而对象会有一个自己的原型。特别地,当函数是构造器函数时,函数的原型属性就等于该函数构造的对象(或者叫实例)的原型。

6.假设有个构造函数A(),var a = new A(),此时A.prototype===a__proto__===a.constructor.prototype,但是当把构造函数A的原型属性完全换成一个新的对象时,这时请注意,在这次替换之前就已经创建的实例a,a的原型任然指向原来的A的原型属性(是一个对象);如下:

1 var A = function(name) {
2     this.name = name;
3 }  
4  var a = new A('alpha');
5 a.name; //'alpha'   
6  A.prototype = {x:23};    
7  a.x; //null

 

7.更详细的了解原型JavaScript原型

posted @ 2016-08-05 23:32  胡小白  阅读(120)  评论(0编辑  收藏  举报