JavaScript 歸屬檢測
■知識點(diǎn)
in運(yùn)算符能夠檢測左側(cè)操作數(shù)是否為右側(cè)操作數(shù)的成員。其中左側(cè)操作數(shù)是一個(gè)字符串,或者可以轉(zhuǎn)換為字符串的表達(dá)式,右側(cè)操作數(shù)是一個(gè)對象或數(shù)組。
instanceof運(yùn)算符能夠檢測左側(cè)的對象是否為右側(cè)類型的實(shí)例。
■實(shí)例設(shè)計(jì)
下面的代碼使用in運(yùn)算符檢測屬性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的實(shí)例。
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ù)不是復(fù)合型對象,則將返回false。
點(diǎn)擊加載更多評論>>