-2
我想了解hasOwnProperty()方法..我明白,方法測試對象是否有一個自己的屬性與方法中給定的名稱。但是,對於繼承的屬性,它將返回false。hasOwnProperty()方法
var o = {
name: 'Master',
number: '117',
last: 'Chief'
};
o.prototype = {
planet: 'Halo'
};
for(var p in o) {
if(!o.hasOwnProperty(p)) {
continue;
}
console.log(p);
}
所以,當我運行此腳本,控制檯將返回 「名」, 「號碼」, 「最後」,並從o.prototype 「原型」。有人能給我一個解釋爲什麼腳本如果返回繼承屬性?我認爲否定方法「hasOwnProperty()」會跳過繼承的屬性。
這並不打印「星球」,所以它正在做你期望的。 –
不可複製。這段代碼記錄了名字,數字,最後一個原型,而不是名字,數字,最後一個工廠。並且該對象只從Object.prototype繼承,它沒有任何枚舉屬性(默認情況下)。 – Oriol
[MDN](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty)有一篇文章很好地解釋了這種方法。你實際上掙扎的是關於原型繼承的概念,這是你在使用原型失敗時顯而易見的。請閱讀[使用對象](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects),花一些時間在JavaScript中正確學習OOP。 – Oka