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
问题内容: 这个问题很简单,但是由于我是python的新手,所以我从php过来了,因此遇到了一些错误。 我有以下简单的课程: 在PHP中,我可以执行以下操作: 我该如何在python中做到这一点? 问题答案: 要访问对象的字段或方法,请使用dot : 如果将在运行时定义字段名称,请使用内置函数:
问题内容: 我在Twitter的JS文件中找到了以下代码段。我想知道为什么他们需要调用该函数才能看到该属性?for循环针对“dict”中的每个“ key”运行,这意味着“ dict”具有“ key”,我是否遗漏了一点? 问题答案: 因为如果不这样做,它将遍历原型链上的每个属性,包括您不知道的属性(这些属性可能是由于弄乱了本机对象原型而添加的)。 这样,您可以确保仅该对象实例本身上的键。
本文向大家介绍JS使用for in有序获取对象数据,包括了JS使用for in有序获取对象数据的使用技巧和注意事项,需要的朋友参考一下 需要遍历对象,将key value分为两个数组,可以使用forin,但是获取到的对象中的属性及属性值排列是无序的, 目的是要按顺序取出对象中的key和value值。 实现效果: 比如接口返回的对象格式: 需要转换的格式: 实现代码: 实现思想: 还是先使用fori
本文向大家介绍详解js访问对象的属性和方法,包括了详解js访问对象的属性和方法的使用技巧和注意事项,需要的朋友参考一下 对象的属性和方法统称为对象的成员。 访问对象的属性 在JavaScript中,可以使用“ . ”和“ [ ] ”来访问对象的属性。 二者区别:“ . ”表示法一般作为静态对象使用时来存取属性。而“[ ]”表示法在动态存取属性时就非常有用。 访问对象的方法 在JavaScript中