显示javascript原型链
我想查看原型链中的项目列表 有办法知道吗? 我尝试使用getOwnPropertyNames,但它不显示原型链显示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())); /
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:“我如何接受这个答案?”