如何在 JavaScript 中使用 Object.prototype
我看过 JavaScript 的文档,我读到过: Object.prototype ,文档中他们评论道:
The Object.prototype property represents the Object prototype object.
好的,我明白我可以通过这种方式创建一个对象:
var o = new Object();
但这是什么意思:
** 属性代表 Object 原型对象**
好的,我知道什么是 Object:
The Object constructor creates an object wrapper.
我的问题是:
您说这个是什么意思:
The Object.prototype property represents the Object prototype object.
在研究时,我还看到了关于原型的这个,这个原型术语与这个 Object.prototype 相同吗?:
object that provides shared properties for other objects
我希望我的问题不好,只是我不明白这个术语?
Javascript 使用
创建原型模式
。为了简单起见,每次调用
new Object()
或
Object.create
时,从技术上讲,您都是在克隆原型对象。Object.prototype 仅保存对原型对象的引用。
为什么这很重要?因为无论你放在原型上什么都将被克隆。如果你将函数放在原型上,情况会有所不同,你创建/克隆的对象只保存对原型的引用,因此当你更改原型上的函数时,它将反映在所有创建的对象上。但是,如果你指定变量,它们的值将被克隆,因此你创建的每个对象都将拥有自己的值。
Javascript 中的对象可以相互继承。这意味着,如果我们有一个继承了
parent
对象的
child
对象,则可以通过子对象访问父对象的所有属性:
const parent = { age: 37 };
const child = Object.create(parent); // child inherits parent
console.log(child.age); // 37
现在
parent
被称为
child
的原型。现在
Object.prototype
属性是继承链中最上面的父对象,在我们的例子中是:
child -> parent -> Object.prototype
因此,每个对象(以及几乎所有其他对象)都从该属性继承。这意味着,如果您向其中添加某些内容:
Object.prototype.test = "hey!";
所有子对象(所有对象)都会继承它:
console.log({}.test, 1..test, "test".test); // hey, hey, hey!