我正在學習繼承的屬性,我很困惑。我非常感謝您的幫助,讓我更清楚。
因此,繼承屬性是物件從原型物件繼承的屬性。
我讀過的一篇文章給出了一個繼承屬性的例子:“每個 JavaScript 物件都從其原型物件繼承 toString 屬性”
所以,我的問題是:這些都是繼承的屬性嗎?
靜態方法
物件.assign()
物件.create()
Object.defineProperty()
Object.defineProperties()
物件條目()
物件.freeze()
Object.fromEntries()
Object.getOwnPropertyDescriptor()
Object.getOwnPropertyDescriptors()
Object.getOwnPropertyNames()
Object.getOwnPropertySymbols()
Object.getPrototypeOf()
物件.is()
Object.isExtensible()
物件.isFrozen()
物件.isSealed()
物件.keys()
Object.preventExtensions()
物件.seal()
Object.setPrototypeOf()
物件.values()
實體屬性
Object.prototype.constructor
物件.原型。原型
實體方法
物件.原型。定義Getter ()
物件.原型。定義Setter ()
物件.原型。查找Getter ()
物件.原型。查找設定器()
Object.prototype.hasOwnProperty()
Object.prototype.isPrototypeOf()
Object.prototype.propertyIsEnumerable()
Object.prototype.toLocaleString()
Object.prototype.toString()
Object.prototype.valueOf()
(我從 MDN 物件中找到了這個串列,它們是靜態方法、實體屬性和物件的實體方法,https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)
那么,這是否意味著所有物件都具有上述屬性?
既然函式基本上是物件,函式也繼承了那些?
另外,有沒有地方可以找到所有繼承屬性物件的串列?
非常感謝您!對不起,很長的帖子。
uj5u.com熱心網友回復:
靜態方法,只屬于Object類(建構式),這意味著你只能通過doing呼叫它們Object.nameOfMethod()。
另一方面,實體屬性和方法由 Object 的所有實體繼承,這意味著每個物件都將繼承這些道具/方法。
現在請記住,在 JS 中,如果不是原始物體,每個物體都是物件。
例如一個陣列:
const arr = ["hello"]
console.log(typeof arr) // object
console.log(arr instanceof Object) // true
console.log(Array.prototype.isPrototypeOf(arr)) // true
console.log(arr.propertyIsEnumerable(0)) // true
console.log(arr.toLocaleString()) // hello
console.log(arr.valueOf()) // ["hello"]
console.log(arr.hasOwnProperty(0)) // true
console.log(arr.toString()) // hello
這是因為即使JS 中的陣列Array是 的實體,它們也是 的實體Object,您可以將陣列視為索引為鍵的特殊物件:
const arr = {
0: "hello"
}
uj5u.com熱心網友回復:
靜態方法不能被繼承,因為它們存在于類中,而不存在于類的任何實體中。所以這些都出來了。其他方法,絕對!至少我是這么認為的。讓我們進行一些實驗并檢查結果。
const f = () => {
return "hello world"
};
f.foo = "bar";
console.log(f.constructor);
console.log(f.toString());
console.log(f.valueOf());
console.log(f.hasOwnProperty("foo"));
console.log(f.hasOwnProperty("frankincense"));
這個片段表明,是的,非靜態方法確實是由函式繼承的,因為函式是物件......就像 Crockford 在他的墳墓里翻滾一樣
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/459975.html
標籤:javascript 哎呀 遗产 原型继承
