我了解 JavaScript 原型。但我对原型属性和隐藏原型链接之间的区别感到困惑。另外,对象原型链接和函数原型链接有什么区别?
我正在寻找一个非常基本的示例来演示相同的内容(主要是原型链接/链接,例如它如何根据对象原型链接和函数原型链接查找属性)。
文档对象模型 (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
是一个 Object,包含 HTMLDivElement.prototype
中的所有方法和属性。它位于 __proto___
属性下,但这并不意味着您应该执行 div.__proto__.insertBefore
来访问 insertBefore
。这就像其他语言中的包含。
换句话说,
div.__proto__
指向HTMLDivElement.prototype
。
prototype
是一个对象。因此,它可以拥有自己的 __proto__
指针。在这种情况下,HTMLDivElement
的prototype
是一个对象,并且有一个指向__proto__
的HTMLElement.prototype
,因此它包含所有方法和属性。它沿着这条路径走,直到 Object.prototype
没有 __proto__
指针和查找站。
我试图避免使用
new
关键字来解释这一点。我希望它有帮助...