Javascript中的in,hasOwnProperty,delete,for/in
in 運算子
判斷物件是否擁有某一屬性
只要物件擁有該屬性,就會返回true,否則false
var point = { x:1, y:1 };
alert( `x` in point ); //true
var arr = [`one`, `two`];
alert( `kang` in arr ); //false
alert( `1` in arr ); //true
alert( `push` in arr ); //true
var fn = function(){};
fn.prototype.site = `cnblogs.com`;
var obj = new fn();
alert( `site` in obj ); //true
hasOwnProperty
判斷物件是否具有某一屬性。這個屬性必須是自己具有的,即非繼承的。
var o = {};
o.name = `object`;
alert( o.hasOwnProperty(`kang`) ); //false: 不存在
alert( o.hasOwnProperty(`toString`) ); //false: `toString`方法繼承自`Object`
alert( o.hasOwnProperty(`name`) ); //true
alert( Math.hasOwnProperty(“kang”) ); //false
alert( Math.hasOwnProperty(“cos”) ); //true;
alert( Math.hasOwnProperty(“toString”) ); //false: `toString`方法繼承自`Object`
var base = function(){
this.name = `Rain Man`;
};
base.prototype.site = `cnblogs.com`;
var o = new base();
alert( o.hasOwnProperty(`site`) ); //false: 是繼承的
alert( o.hasOwnProperty(`name`) ); //true
delete 運算子
刪除物件的屬性,刪除後不能使用 for/in 列舉出刪除的屬性。
刪除陣列的元素,刪除後陣列的 length 不會改變,不可以使用 for/in 列舉出來刪除的元素; shift()、pop()、splice()才會真正的刪除陣列中的元素
var point = { x:1, y:1 };
delete point.x; //{ y:1 }
var arr = [`one`, `two`];
delete arr[0]; //[undefined, `two`]
for/in
列舉物件的屬性
物件的一些屬性是不可以使用for/in來輸出的,例如:內部的,使用者自定義的可以,從建構函式prototype中繼承的也可以列舉出
var arr = [`one`, `two`];
arr.author = `rainman`;
//不會列舉出陣列的push,pop等方法,因為這些方法都是內部的
for( var i in arr ) ist(arr[i]); //`one`、`two`、`rainman`
var Blog = function(){};
Blog.prototype.site = `cnblogs.com`;
var oBlog = new Blog();
for( var i in oBlog ) ist(oBlog[i]); //`cnblogs.com`
var RM = function(){};
RM.prototype = new Blog();
RM.prototype.url = `http://rainman.cnblogs.com`
var oRM = new RM();
for( var i in oRM ){
ist(i + `:`+ oRM[i]); //`url:http://rainman.cnblogs.com`、site:cnblogs.com
}
作者:Tyler Ning
出處:http://www.cnblogs.com/tylerdonet/
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,如有問題,可以通過以下郵箱地址williamningdong@gmail.com
聯絡我,非常感謝。
相關文章
- JavaScript hasOwnProperty()JavaScript
- javascript hasOwnProperty() 用法JavaScript
- Javascript中的deleteJavaScriptdelete
- 原型中的in和hasOwnProperty原型
- JavaScript deleteJavaScriptdelete
- 關於javascript的Object. hasOwnProperty,看我就夠了JavaScriptObject
- JavaScript delete用法JavaScriptdelete
- 詳解 javascript 的 delete 運算JavaScriptdelete
- rman 中delete 與delete force 的區別delete
- rman 中的 delete all input 和 delete input 的區別delete
- RMAN 中delete exipired 和 delete obsolete 的區別delete
- Rman 中的delete input的用法delete
- Oracle中truncate和delete的區別Oracledelete
- Oracle中,一個Delete操作的流程Oracledelete
- hasOwnProperty()函式程式碼例項函式
- MySQL和Oracle中的delete,truncate對比MySqlOracledelete
- ZT Oracle中,一個Delete操作的流程Oracledelete
- 找回Oracle中Delete刪除的記錄Oracledelete
- Why Object.prototype.hasOwnProperty.call(myObj, prop)Object
- 為什麼使用Object.prototype.hasOwnPropertyObject
- delete 和 delete [] 的真正區別delete
- javascript delete刪除屬性的注意點簡單介紹JavaScriptdelete
- javascript delete運算子刪除array陣列元素JavaScriptdelete陣列
- delete與delete[]需要注意的地方delete
- laravel中delete()方法和destroy()方法的區別Laraveldelete
- 淺析c++11中的“=default“和“=delete“C++delete
- Mac電腦中delete鍵的七種用法!Macdelete
- C++中過載new和delete的使用C++delete
- Oracle中truncate和delete的區別(例項)Oracledelete
- c++中new和delete的使用方法C++delete
- JavaScript中的thisJavaScript
- JavaScript 中的 this !JavaScript
- JavaScript 中的 !!JavaScript
- 詳解SQL中drop、delete和truncate的異同SQLdelete
- mysql 5.5 中自連線update and deleteMySqldelete
- Oracle 刪除表中重複記錄的DELETE SQLOracledeleteSQL
- Oracle中審計刪除(DELETE)操作的觸發器Oracledelete觸發器
- delete input 與 delete all inputdelete