javascript delete刪除屬性的注意點簡單介紹
關於delete更多相關內容可以參閱javascript delete運算子一章節。
本章節只是介紹一下常見的delete刪除屬性需要注意的地方,希望能夠給需要的朋友帶來參考作用。
delete只是斷開屬性和宿主物件的聯絡,看如下程式碼:
[JavaScript] 純文字檢視 複製程式碼var obj = {antzone:{url:"softwhy.com"}}; var innerObj = obj.antzone; console.log(obj.antzone.url); delete obj.antzone; console.log(obj.antzone); console.log(innerObj.url);
由此可見,只是斷開屬性和宿主物件的聯絡,而沒有徹底的刪除屬性值。
delete能夠刪除自有屬性,但是不能夠刪除繼承的屬性,看如下程式碼例項:
[JavaScript] 純文字檢視 複製程式碼function inherit(p){ if(p == null){ // 不能從null中繼承 throw TypeError(); } if(Object.create){ return Object.create(p); } var t = typeof p; if(t !== "object" || t !== "function"){ //要繼承的物件 型別要符合 throw TypeError(); } function f(){ }; //定義一個空的建構函式 f.prototype = p; //原型指向要繼承的物件p return new f(); //建立f物件,此物件繼承自p } var obj = {url:"softwhy.com"}; var newObj = inherit(obj); newObj.age = 3; console.log("url = "+newObj.url+" age = "+newObj.age); delete newObj.url; delete newObj.age; console.log("url = "+newObj.url+" age = "+newObj.age);
上面的程式碼說明繼承的屬性是不可以被刪除的,上面的程式碼可能不少朋友有點看不懂,下面就進行一下注釋。
一.程式碼註釋:
(1).function inherit(p){ },此函式實現了繼承效果,引數p是要繼承的原型物件例項。
(2).if(p == null){
throw TypeError();
},不能從null中繼承,會丟擲一個錯誤。
(3).if(Object.create){
return Object.create(p);
},首先判斷當前瀏覽器是否支援Object.create()方法,如果支援則建立一個原型物件是p的物件。
(4).var t = typeof p,判斷p的型別。
(5).if(t !== "object" || t !== "function"){
throw TypeError();
},傳入的p一定要是引用型別,如果傳入的是簡單型別的就會報錯。
(6).function f(){ },建立一個空的函式,這樣比較乾淨。
(7).f.prototype = p,設定它的原型物件為p。
(8).return new f(),返回物件例項。
二.相關閱讀:
(1).Object.create()方法可以參閱Object.create()一章節。
(2).prototype可以參閱javascript prototype原型一章節。
相關文章
- javascript innerText屬性用法簡單介紹JavaScript
- javascript遍歷物件的屬性簡單介紹JavaScript物件
- javascript操作html元素屬性簡單介紹JavaScriptHTML
- javascript的clientLeft和clientTop屬性用法簡單介紹JavaScriptclient
- javascript訪問物件屬性方式簡單介紹JavaScript物件
- javascript中cookie的secure屬性的作用簡單介紹JavaScriptCookie
- javascript建立、讀取或者刪除cookie簡單介紹JavaScriptCookie
- javascript模擬實現私有屬性簡單介紹JavaScript
- css的透明屬性簡單介紹CSS
- css border屬性簡單介紹CSS
- outerHTML屬性用法簡單介紹HTML
- js的屬性物件的specified屬性用法簡單介紹JS物件
- JavaScript 刪除class屬性JavaScript
- 標籤的alt屬性簡單介紹
- javascript刪除註冊的事件處理函式簡單介紹JavaScript事件函式
- contenteditable屬性用法簡單介紹
- opacity屬性用法簡單介紹
- <img>標籤的alt屬性簡單介紹
- 連結a的download屬性簡單介紹
- js函式的length屬性簡單介紹JS函式
- overflow-x 屬性用法簡單介紹
- background-size屬性用法簡單介紹
- clientTop和clientLeft屬性用法簡單介紹client
- js物件的屬性的運用簡單介紹JS物件
- javascript陣列增刪改查簡單介紹JavaScript陣列
- 如何除錯javascript程式碼簡單介紹除錯JavaScript
- <style>標籤的scoped屬性用法簡單介紹
- JavaScript刪除和清空物件屬性JavaScript物件
- screenY,pageY,clientY,layerY屬性用法簡單介紹client
- jquery事件物件event常用屬性簡單介紹jQuery事件物件
- HTML5 autofocus屬性用法簡單介紹HTML
- JavaScript 簡單介紹JavaScript
- form標籤的enctype屬性的作用簡單介紹ORM
- javascript匿名函式的優點簡單介紹JavaScript函式
- js 私有方法屬性和公有方法屬性簡單介紹JS
- img圖片的complete屬性用法簡單介紹
- javascript DOM元素節點操作簡單介紹JavaScript
- javascript的this用法簡單介紹JavaScript