[英]how working to Object.prototype in JavaScript
我看到了JavaScript的文档,并且阅读了有关: Object.prototype的信息,他们在文档中评论说:
Object.prototype属性表示对象原型对象。
好的,我了解可以用这种方式创建对象:
var o = new Object();
但是这是什么意思:
**属性表示对象原型对象**
好吧,我知道什么是对象:
Object构造函数创建一个对象包装器。
我的问题是:
您说的是什么意思:
Object.prototype属性表示对象原型对象。
同样在研究中我看到了关于原型的东西,这个原型术语和这个Object.prototype是一样的:
提供其他对象共享属性的对象
我希望我的问题不好,只是我不明白这个词?
Javascript使用创新的Prototype模式 。 为简化起见,每次调用new Object()
或Object.create
,从技术上来说都是在克隆原型对象。 Object.prototype仅保留对原型对象的引用。
现在为什么如此重要? 因为无论您放置在原型上的什么,都会被克隆。 如果将函数放在原型上是有区别的,那么创建/克隆的对象只是保留对它的引用,因此,当您在原型上更改函数时,它将反映在所有创建的对象上。 但是,如果您指定变量,它们的值将被克隆,因此您创建的每个对象都将拥有自己的值。
Javascript中的对象可以相互继承。 这意味着,如果我们得到了一个对象child
一个继承parent
对象,你可以通过子访问父的所有属性:
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!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.