当前位置: 首页 > 编程笔记 >

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

闻人凯泽
2023-03-14
本文向大家介绍浅谈js使用in和hasOwnProperty获取对象属性的区别,包括了浅谈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使用in和hasOwnProperty获取对象属性的区别,包括了详谈js使用in和hasOwnProperty获取对象属性的区别的使用技巧和注意事项,需要的朋友参考一下 in判断的是对象的所有属性,包括对象实例及其原型的属性; 而hasOwnProperty则是判断对象实例的是否具有某个属性。 示例代码: 以上代码执行的时候,name属性要么是从实例中获取的,要么是来源于原型

  • 本文向大家介绍浅谈JS使用[ ]来访问对象属性,包括了浅谈JS使用[ ]来访问对象属性的使用技巧和注意事项,需要的朋友参考一下 对象的属性由两种固定的方法来访问:”.”记法和”[ ]“方括号记法: 使用”.”号记法访问标准的对象属性,使用”[ ]“方括号记法访问由页面定义的对象属性。如下 document.forms["myformname"].elements["myinput"].value

  • 本文向大家介绍浅谈js内置对象Math的属性和方法(推荐),包括了浅谈js内置对象Math的属性和方法(推荐)的使用技巧和注意事项,需要的朋友参考一下 属性: constructor 所建立对象的函数参考 prototype 能够为对象加入的属性和方法 E 欧拉常量,自然对数的底(约等于2.718) LN2 2的自然对数(约等于0.693) LN10 10的自然对数(约等于2.302) LOG2E

  • 本文向大家介绍浅谈js对象属性 通过点(.) 和方括号([]) 的不同之处,包括了浅谈js对象属性 通过点(.) 和方括号([]) 的不同之处的使用技巧和注意事项,需要的朋友参考一下 【JS对象属性的查询和设置】 可以通过点(.) 或 方括号([]) 运算符来获取属性的值。运算符左侧应当是一个表达式,它返回一个对象。对于点(.)来说,右侧必须是一个以属性名称命名的简单标识符。对于方括号([])来说

  • 问题内容: 这个问题很简单,但是由于我是python的新手,所以我从php过来了,因此遇到了一些错误。 我有以下简单的课程: 在PHP中,我可以执行以下操作: 我该如何在python中做到这一点? 问题答案: 要访问对象的字段或方法,请使用dot : 如果将在运行时定义字段名称,请使用内置函数:

  • 问题内容: 我在Twitter的JS文件中找到了以下代码段。我想知道为什么他们需要调用该函数才能看到该属性?for循环针对“dict”中的每个“ key”运行,这意味着“ dict”具有“ key”,我是否遗漏了一点? 问题答案: 因为如果不这样做,它将遍历原型链上的每个属性,包括您不知道的属性(这些属性可能是由于弄乱了本机对象原型而添加的)。 这样,您可以确保仅该对象实例本身上的键。