属性的判断in和hasOwnProperty区别

时间:2024-05-18 12:20:42

1. hasOwnProperty 方法用于判断对象“自身”是否有某个属性:

2. in 用于判断对象“自身”及其“继承对象”是否具有某个属性:

 

例: let  obj = {a:1,b:2};

控制台查看:

       属性的判断in和hasOwnProperty区别

obj.hasOwnProperty('__proto__')     // false

obj.hasOwnProperty('valueOf')       // false

'__proto__'  in  obj             // true

'valueOf' in obj         // true

应用:

可以判断一些新属性和方法是否支持:如下

1. 想判断浏览器是否支持“__proto__"属性     //  ‘__proto__’   in  {}   

2.判断浏览器是否支持“bind”方法    //      "bind"  in  new Function()