Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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原型链_Javascript_Google Chrome - Fatal编程技术网

显示javascript原型链

显示javascript原型链,javascript,google-chrome,Javascript,Google Chrome,我想查看原型链中的项目列表 有办法知道吗? 我尝试使用getOwnPropertyNames,但它不显示原型链 function Grid(width, height) { this.width = width; this.height = height; } Grid.prototype.example = function() {console.log("hello");} console.log(Object.getOwnPropertyNames(new Grid())); /

我想查看原型链中的项目列表 有办法知道吗? 我尝试使用getOwnPropertyNames,但它不显示原型链

function Grid(width, height) {
  this.width = width;
  this.height = height;
}
Grid.prototype.example = function() {console.log("hello");}

console.log(Object.getOwnPropertyNames(new Grid()));
//["width", "length"]
为什么它不显示?有没有办法显示它

当属性从另一个构造函数继承时,使用getOwnPropertyNames时,我也有一个奇怪的错误

function Grid(width, height) {
  this.space = new Array(width * height);
  this.width = width;
  this.height = height;
}

console.log(Object.getOwnPropertyNames(new Grid()));
//it gives me these errors
Uncaught RangeError: Invalid array length
at new Grid (<anonymous>:3:20)
at <anonymous>:2:40
at Object.InjectedScript._evaluateOn (<anonymous>:905:140)
at Object.InjectedScript._evaluateAndWrap (<anonymous>:838:34)
at Object.InjectedScript.evaluate (<anonymous>:694:21)
功能网格(宽度、高度){
this.space=新数组(宽度*高度);
这个。宽度=宽度;
高度=高度;
}
log(Object.getOwnPropertyNames(newgrid());
//它给了我这些错误
未捕获范围错误:数组长度无效
在新网格处(:3:20)
两点四十分
在Object.InjectedScript.\u evaluateOn(:905:140)
在Object.InjectedScript.\u evaluateAndWrap(:838:34)
在Object.InjectedScript.evaluate(:694:21)

为什么会这样?

我想最简单的方法是使用
for
循环:

for (var prop in obj) {
  console.log(prop);
}
如果要获取所有属性,而不仅仅是可枚举的属性,可以使用
Object.getOwnPropertyNames
和:


注意:此列表可能包含重复项。

我想最简单的方法是使用
for
循环:

for (var prop in obj) {
  console.log(prop);
}
如果要获取所有属性,而不仅仅是可枚举的属性,可以使用
Object.getOwnPropertyNames
和:


注意:此列表可能包含重复项。

“为什么会这样?”因为您正在调用无效的
新数组(NaN)
。它与
getOwnPropertyNames
无关,与您没有将所需参数传递给函数有关。“这是为什么?”因为您正在调用
new Array(NaN)
,这是无效的。它与
getOwnPropertyNames
没有任何关系,而且您没有将所需的参数传递给函数。哇,Thanks,它工作得很好,它甚至显示了原型链的其余部分。我如何接受这一答案?你能投票支持我的问题吗?这样我就能赢得声誉了?thanks@Salis:“我如何接受这个作为答案”哇,Thanks,它工作得很完美,它甚至显示了原型链的其余部分。我如何接受这个作为答案?你能投票支持我的问题吗?这样我就能赢得声誉了?thanks@Salis:“我如何接受这个答案?”