JavaScript 歸屬檢測
■知識點
in運算符能夠檢測左側(cè)操作數(shù)是否為右側(cè)操作數(shù)的成員。其中左側(cè)操作數(shù)是一個字符串,或者可以轉(zhuǎn)換為字符串的表達式,右側(cè)操作數(shù)是一個對象或數(shù)組。
instanceof運算符能夠檢測左側(cè)的對象是否為右側(cè)類型的實例。
■實例設計
下面的代碼使用in運算符檢測屬性a、b、c、valueOf是否為對象o的成員。
var o = { //定義對象
a:1, //定義屬性a
b:function(){} //定義方法b
}
console.log("a" in o); //返回true
console.log("b" in o); //返回true
console.log("c" in o); //返回false
console.log("valueOf" in o); //返回true,繼承Object的原型方法
console.log("constructor" in o); //返回true,繼承Object的原型屬性
下面的代碼使用instanceof檢測數(shù)組a是否為Array、Object和Function的實例。
var a = new Array(); //定義數(shù)組
console.log(a instanceof Array); //返回true
console.log(a instanceof Object); //返回true,Array是Object的子類
console.log(a instanceof Function);//返回false
提示:
如果左側(cè)操作數(shù)不是對象,或者右側(cè)操作數(shù)不是類型函數(shù),則返回false。如果右側(cè)操作數(shù)不是復合型對象,則將返回false。
點擊加載更多評論>>