你的位置:首页 > 软件开发 > Java > javascript原型链继承

javascript原型链继承

发布时间:2015-07-05 01:00:18
一、关于javascript原型的基本概念:prototype属性:每个函数都一个prototype属性,这个属性指向函数的原型对象。原型对象主要用于共享实例中所包含的的属性和方法。constructor属性:每个原型对象都有一个constructor属性,这个construct ...

javascript原型链继承

一、关于javascript原型的基本概念:

prototype属性:每个函数都一个prototype属性,这个属性指向函数的原型对象。原型对象主要用于共享实例中所包含的的属性和方法。

constructor属性:每个原型对象都有一个constructor属性,这个constructor属性包含一个指向prototype属性所在函数的指针。 例如 Foo.prototype.constructor指向Foo函数。这个属性是只读的。

__proto__属性(ES6通过对__proto__属性进行标准化):创建一个构造函数的实例后,这个实例包含一个指针,指向这个构造函数的原型对象,这个指针叫做[[Prototype]],在chrome、Safari、Firefox下可通过对象的__proto__属性访问。__proto__属性是实例才拥有的,在javascript中函数也是对象,它是Function类型的实例, 所以函数也有__proto__属性。

我们来看这样一个关系图:

javascript原型链继承

    (图片来自:http://www.mollypages.org/misc/js.mp)

 

  通过这个关系图,我们可以得到以下信息:

  • 实例的__proto__属性始终指向它构造函数的原型对象:
1 function Foo(){};2 var foo=new Foo();3 console.log(foo.__proto__===Foo.prototype); //true4 console.log(Foo.__proto__===Foo.constructor.prototype);//ture

原标题:javascript原型链继承

关键词:JavaScript

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。