原生js没提供直接判断属性是否存在于原型对象的方法,但同时使用hasOwnProperty() 和in操作符,能实现这个功能!
obj.hasOwnProperty(attribute): 可以检测一个属性是否存在于一个实例对象中,还是存在于原型对象中,若存在于实例对象中,则返回true,示例:
提示:你可以先修改部分代码再运行。
只需将上述代码中2条注释随意选一条去掉前面的注释,alert就会返回true,即:
当实例或构造函数中重写原型对象中属性,hasOwnProperty方法会返回true,否则返回false。
in操作符:只要属性存在于实例对象或原型对象中,就会返回true。
因此,我们增加一条 代码: alert("name" in person1) ,不管去不去掉注释,都会返回true
原生js没提供直接判断属性是否存在于原型对象的方法,但同时使用hasOwnProperty() 和in操作符,能实现这个功能,具体代码如下:
提示:你可以先修改部分代码再运行。
没去掉注释代码,alert返回true:name属性存在于原型对象中
去掉注释代码,alert返回false:name属性已被实例重写,不能直接访问到原始的原型对象属性name
0条评论( 网友:0 条,站长:0 条 ) 网友评论{有您的评论更精彩....}