我有以下代碼片斷中最後一個'刪除'用法返回一個意外的值。意外'刪除'返回值
function Shape() {
this.a = 10;
}
Shape.prototype.a = 20;
var s = new Shape();
console.log(s.a); // 10
delete s.a; //true
console.log(s.a) // 20
delete s.a; //true
console.log(s.a); // 20
即使最終「刪除山」返回true,「山」的值仍然返回20
如果我們不能通過從參考刪除原型對象對象(在本例中是's'),爲什麼delete關鍵字返回true?
其次,
delete Shape.prototype.a; // true
給出了真實的財產的確是從Shape.prototype刪除。但是有沒有辦法通過對象引用's'來刪除'Shape.prototype.a'?
你是什麼意思'delete'返回TRUE? 'delete'是一個聲明,而不是一個表達式。 – thefourtheye
您可以在控制檯中檢查'刪除'的返回值。如果項目被刪除,它在評估語句後返回'真'。 –
請在投票回答問題前檢查'刪除'的用法。 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/delete –