Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中,为什么';t表示返回Object.prototype的内容?_Javascript_Node.js_Prototype - Fatal编程技术网

在JavaScript中,为什么';t表示返回Object.prototype的内容?

在JavaScript中,为什么';t表示返回Object.prototype的内容?,javascript,node.js,prototype,Javascript,Node.js,Prototype,我用一个。。。in循环将返回对象的所有属性,包括来自其原型链的属性,并且使用.keys()将给我一个非inher数组(基本上是for…in与hasOwnProperty结合使用),但是为什么for。。。在循环中包括从对象引入的东西?i、 为什么不为。。是否包含来自对象的toString函数?谢谢 对象的属性由其键、值以及是否可配置、可枚举和可写来定义。不可枚举属性不会显示在for循环中 当像这样创建对象属性时 var myObject = {}; myObject["a"] = 3; 默认情况

我用一个。。。in循环将返回对象的所有属性,包括来自其原型链的属性,并且使用.keys()将给我一个非inher数组(基本上是for…in与hasOwnProperty结合使用),但是为什么for。。。在循环中包括从对象引入的东西?i、 为什么不为。。是否包含来自对象的toString函数?谢谢

对象的属性由其键、值以及是否可配置、可枚举和可写来定义。不可枚举属性不会显示在for循环中

当像这样创建对象属性时

var myObject = {};
myObject["a"] = 3;
默认情况下,它是可配置、可枚举和可写的。它将在for循环中显示。可以使用
Object.defineProperty
创建不可枚举的属性。您可以使用
检查属性是否可枚举。propertyIsEnumerable

myObject.propertyIsEnumerable("a"); // --> true
Object.propertyIsEnumerable("toString"); // --> false

for…in语句以任意顺序迭代对象的可枚举属性--for..in循环仅迭代对象的可枚举属性。您可以使用检查该设置。这非常有意义。我没有意识到对象的属性被定义为不可枚举。谢谢