JavaScript中對象property的刪除方法介紹
JavaScript中,可以使用delete操作符來刪除對象中的property:
var t = {a:42, b:26};
console.log(t);//Object {a=42, b=26}
delete t.a;
console.log(t);//Object {b=26}
這種property刪除操作的局限性在于:delete操作符只能刪除對象自身所有的property,無法刪除其從prototype對象處繼承而來的property。如果想刪除prototype對象中的property,必須顯式獲取prototype對象后,在prototype對象中進行操作:
var o = {x:1, y:2};
var a = Object.create(o);
a.z = 3;
console.log(a);//Object {z=3, x=1, y=2}
delete a.x;//Can NOT delete inherited property
console.log(a);//Object {z=3, x=1, y=2}
delete a.z;//Can delete own property
console.log(a);//Object {x=1, y=2}
delete a.__proto__.x;
console.log(a);//Object {y=2}
如果刪除了prototype對象中的property,那么所有從該prototype對象中繼承的對象都會收到影響。
對于delete操作的返回值,JavaScript中遵循以下規(guī)則:
1.如果delete操作成功,返回true。
2.如果delete操作無任何效果(比如要刪除的property并不存在),也返回true。
3.如果要delete的property,其configurable屬性為false,那么在嚴格模式下會報TypeError錯誤,而在非嚴格模式下則返回false。
如果delete操作符所作用的是全局對象的property,那么在非嚴格模式下,代碼中的全局對象可以省略:
this.c = 42;
delete c;//equal to delete this.c;
需要注意的是,在嚴格模式下,上述寫法會拋SyntaxError錯誤。
相關文章
微信小程序獲取手機網(wǎng)絡狀態(tài)的方法【附源碼下載】
這篇文章主要介紹了微信小程序獲取手機網(wǎng)絡狀態(tài)的方法,涉及微信小程序wx.getNetworkType函數(shù)檢查網(wǎng)絡連接狀態(tài)的相關使用技巧,并附帶源碼供讀者下載參考,需要的朋友可以參考下2017-12-12在b/s開發(fā)中經(jīng)常用到的javaScript技術
在b/s開發(fā)中經(jīng)常用到的javaScript技術...2006-08-08解析John Resig Simple JavaScript Inheritance代碼
上網(wǎng)也查了一下對些的理解說的都不是很清楚. 在翻閱的同時找到了一篇 分析這篇文章的文章 哈哈 分析的很詳細. (Join Resig 大師的 "Simple Inheritance" 使用了很多有意思的技巧) 如果你有時間, 并對此感興趣不訪好好看看. 我相信多少會有所收益的.2012-12-12jquery和css3中的選擇器nth-child使用方法和用途示例
nth-child(),是CSS3中的一個偽類選擇符,JQuery選擇器繼承了CSS的部分語法,允許通過標簽名、屬性名、內容對DOM元素進行快速、準確的選擇。2023-03-03BootStrap與validator 使用筆記(JAVA SpringMVC實現(xiàn))
這篇文章主要介紹了BootStrap與validator 使用筆記(JAVA SpringMVC實現(xiàn))的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-09-09javascript innerText和innerHtml應用
innerText和innerHtml看字面也應該理解的了2010-01-01