浅谈js使用in和hasOwnProperty获取对象属性的区别

 更新时间:2017年04月27日 10:50:12   投稿:jingxian  
下面小编就为大家带来一篇浅谈js使用in和hasOwnProperty获取对象属性的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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

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

示例代码:

<script type="text/javascript">
  function Person(){
    }
    Person.prototype.name = "allen";

    var person = new Person();
    console.log(person.hasOwnProperty("name")); //false
    console.log("name" in person); //true
    console.log(person.name); //"allen"

    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); //"allen"
</script>

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

这篇浅谈js使用in和hasOwnProperty获取对象属性的区别就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • JS删除某个父元素下的所有子元素

    JS删除某个父元素下的所有子元素

    JS中如何删除某个父元素下的所有子元素?这里我介绍几种方法,结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • javascript简单进制转换实现方法

    javascript简单进制转换实现方法

    这篇文章主要介绍了javascript简单进制转换实现方法,涉及javascript字符串转换与数值操作相关技巧,需要的朋友可以参考下
    2016-11-11
  • js 父窗口控制子窗口的行为-打开,关闭,重定位,回复

    js 父窗口控制子窗口的行为-打开,关闭,重定位,回复

    技术要点可以利用windows的open和closed来对子窗口的控制,需要父窗口和子窗口之间进行互动。
    2010-04-04
  • 移动端js触摸事件详解

    移动端js触摸事件详解

    这篇文章主要为大家详细介绍了移动端js触摸事件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • Javascript Promise用法详解

    Javascript Promise用法详解

    这篇文章主要介绍了Javascript Promise用法详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • JavaScript设计模式之构造函数模式实例教程

    JavaScript设计模式之构造函数模式实例教程

    这篇文章主要介绍了JavaScript设计模式之构造函数模式,结合实例形式分析了构造函数模式的概念、功能、定义及使用方法,需要的朋友可以参考下
    2018-07-07
  • 用JS实现贪吃蛇游戏

    用JS实现贪吃蛇游戏

    这篇文章主要为大家详细介绍了用JS实现贪吃蛇游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)

    JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)

    下面小编就为大家带来一篇JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • js的各种数据类型判断的介绍

    js的各种数据类型判断的介绍

    今天小编就为大家分享一篇关于js的各种数据类型判断的介绍,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • 微信小程序“摇一摇”的实例代码

    微信小程序“摇一摇”的实例代码

    微信小程序并没有提供摇一摇API接口,但是提供了一个重力感应的API,接下来我们可以用这个方法来模拟微信摇一摇功能,具体实现代码,大家参考下本文
    2017-07-07

最新评论