Object.create()
一个对象生成另一个新对象,其中间的联系是创造链接,而不是传统面向对象语言里的复制。在Javascritp中生成一个新对象,比如构造函数生成一个新对象,并不是把属性复制给了这个新对象,而是在新对象内部创造一个链接,此链接刚好链接至构造函数的默认属性prototype所指向的那个对象。这个新对象上可以访问的一些属性,不是在它身上真的存在,而是通过内部链接向上访问至构造函数的默认属性prototype,从这里获取到属性的值,对象间的一个个内部链接,形成原型链,向上访问的这种行为叫做委托。
在javascript中,为了从一个对象访问到另一个对象的属性和方法,实现机制是在两个对象间制作链接,这一个个的链接就形成原型链,在原型链上向上访问的方式就是委托,所以属性访问就是在对象的原型链上委托属性的过程,委托的方向是自下而上的过程;
为了在当前对象,能够访问到另一个对象上的属性和方法,需要在这两个对象间制造链接或者属性复制实现,其中阮一峰大哥的文档是分这两个角度罗列了大部分的实现机制:1,构造函数形式;2,对象字面量;(首选)这两种形式的大多方法具体可参见软大哥的文档:http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance.html。
还有一种实现机制就是Object.create(),在对象之间创造链接,无论是两个构造函数的原型对象中间创造的链接,还是通过普通对象生成一个新对象中间的链接。
浙公网安备 33010602011771号