我理解JavaScript原型。但是对原型属性和隐藏原型链接之间的区别感到困惑。对象原型链接和函数原型链接之间还有区别吗?
有人可以提供一个非常基本的示例来演示相同的内容(主要是原型链接/链接......就像它在对象原型链接和函数原型链接方面查找属性一样)
答案 0 :(得分:1)
文档对象模型(DOM)是JavaScript中继承的一个很好的例子。
想象一下,你有div
。这是HTMLDivElement
的一个实例。
var div = document.createElement('div');
div instanceof HTMLDivElement; // -> true
div instanceof HTMLElement; // -> true
div instanceof Element; // -> true
div instanceof Object; // -> true
div
是对象,包含HTMLDivElement.prototype
中的所有方法和属性。它位于__proto___
属性下,但并不意味着您应div.__proto__.insertBefore
访问insertBefore
。它就像是其他语言的包含。
换句话说,div.__proto__
指向HTMLDivElement.prototype
。
prototype
是一个对象。因此,它可以拥有自己的__proto__
指针。在此案例中,HTMLDivElement
的{{1}}是一个对象,并且prototype
指向__proto__
,因此它包含所有方法和属性。它向下走这条路径,直到HTMLElement.prototype
没有Object.prototype
指针和查找stups。
我尽量避免使用__proto__
关键字来解释这个问题。我希望它有所帮助...