首頁 > web前端 > js教程 > 主體

JavaScript delete 屬性的使用

高洛峰
發布: 2017-01-20 10:55:24
原創
1059 人瀏覽過

delete 是刪除物件的屬性,例如對於一個對象, 
var obj = {key:5}; 
delete obj.key就是刪除該物件的key屬性,這個沒什麼問題,但當物件的原型prototype物件也存在該屬性時,就值得注意了。

var A = function(){}; 
A.prototype.testMe = true; 
var a = new A(); 
//覆盖原型属性 
a.testMe = true; 
if(a.testMe){ 
// 一些关键代码... 
// .... 
//删除这属性 
delete a.testMe; 
} 
//第二段 --------------------------- 
// 在其它模块中 
if(a.testMe){ 
// 一些关键代码... 
// .... 
}
登入後複製

第二段是值得注意的,不要以為a中testMe已尼刪除了就不存在了,所以a.testMe就為undefined,即為假,其實它透過原型訪問還是存在的,還是true! 
這裡不留神就中招了。
//附: 
偵測物件是否存在某屬性, 包含原型鏈的: 
if ('attrName' in obj)… 
偵測物件是否存在某屬性,是物件本身的,而非原型鏈的: 
obj. hasOwnProperty('attrName')

更多JavaScript delete 屬性的使用相關文章請關注PHP中文網!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板