JavaScript 归属检测
■知识点
in运算符能够检测左侧操作数是否为右侧操作数的成员。其中左侧操作数是一个字符串,或者可以转换为字符串的表达式,右侧操作数是一个对象或数组。
instanceof运算符能够检测左侧的对象是否为右侧类型的实例。
■实例设计
下面的代码使用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检测数组a是否为Array、Object和Function的实例。
var a = new Array(); //定义数组
console.log(a instanceof Array); //返回true
console.log(a instanceof Object); //返回true,Array是Object的子类
console.log(a instanceof Function);//返回false
提示:
如果左侧操作数不是对象,或者右侧操作数不是类型函数,则返回false。如果右侧操作数不是复合型对象,则将返回false。
点击加载更多评论>>