[英]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.