博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript中in和hasOwnProperty的区别
阅读量:4920 次
发布时间:2019-06-11

本文共 873 字,大约阅读时间需要 2 分钟。

in判断的是对象的所有属性,包括对象实例及其原型的属性;

而hasOwnProperty则是判断对象实例的是否具有某个属性。

function Person(){        }        Person.prototype.name = "ganiner";        var person = new Person();        console.log(person.hasOwnProperty("name")); //false        console.log("name" in person); //true        console.log(person.name); //"ganiner"        person.name = "justforse";        console.log(person.hasOwnProperty("name")); //true        console.log("name" in person); //true        console.log(person.name); //"justforuse"        delete person.name;        console.log(person.hasOwnProperty("name")); //false        console.log("name" in person); //true        console.log(person.name); //"ganiner"

以上代码执行的时候,name属性要么是从实例中获取的,要么是来源于原型,所以使用in 来访问 name属性始终返回true;而hasOwnProperty()只在属性存在与对象实例中时才返回true,当删除了实例中的name属性后,就恢复了原型中name属性的连接,所以返回ganiner

转载于:https://www.cnblogs.com/ganiner/p/11492800.html

你可能感兴趣的文章
(十六)异常
查看>>
分布式计算领域的哥德尔Eric Brewer
查看>>
作业3
查看>>
BZOJ 1230 Usaco2008 Nov 开关灯
查看>>
【bzoj 2916】[Poi1997]Monochromatic Triangles
查看>>
C# IO 随笔
查看>>
Console-算法[for,if]-不用第三个变量,交换两字符串的值
查看>>
举例说明$POST 、$HTTP_RAW_POST_DATA、php://input三者之间的区别
查看>>
前端接受文件调用后台上传文件的方法
查看>>
ESRI ArcGIS Desktop v10.2-ISO 1DVD
查看>>
win10查看激活到期时间
查看>>
(24)How generational stereotypes hold us back at work
查看>>
CentOS下配置iptables防火墙
查看>>
实验五(数组与指针)
查看>>
编程的智慧(王垠)(http://www.cocoachina.com/programmer/20151125/14410.html)
查看>>
windows XP声音图标无法放入任务栏
查看>>
线性渐变的兼容性写法
查看>>
简单的同步MSMQ
查看>>
关于position的定位
查看>>
应用程序-特定 权限设置并未向在应用程序容器 不可用SID
查看>>