簡體   English   中英

如何刪除Javascript對象屬性?

[英]How to delete Javascript object property?

我試圖刪除一個對象屬性,它是另一個對象的淺層副本。 但是當我嘗試刪除它時會出現問題,它會在原始值拋出預期輸出時永遠消失。

 var obj = { name:"Tom" }; var newObj = Object.create(obj); delete newObj.name;//It never works! console.log(newObj.name);//name is still there 

newObj繼承自obj

您可以通過訪問父對象來刪除該屬性:

delete Object.getPrototypeOf(newObj).name;

(更改父對象)

您也可以通過將值設置為undefined (例如)來遮蔽它:

newObj.name = undefined;

但是你不能刪除newObj上的屬性而不從父對象中刪除它,因為原型被查找原型鏈直到找到它。

基本上, Object.create將創建一個對象,根據傳遞的對象設置其原型並返回它。 因此,如果要從Object.create的返回對象中delete任何屬性,則必須訪問其原型。

var obj = { name:"Tom" };
var newObj = Object.create(obj);
delete Object.getPrototypeOf(newObj).name
console.log(newObj.name); //undefined.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM