有没有其他方法可以查找JavaScript对象的原型属性。比方说,我有这样一个对象。
function proton() {
this.property1 = undefined;
this.property2 = undefined;
};
proton.prototype = {
sample1 : function() {
return 'something';
},
sample2 : function() {
return 'something';
}
};
var my_object = new proton();
console.log(Object.keys(my_object));
返回 ["property1", "property2"]
console.log(Object.getOwnPropertyNames(my_object));
返回 ["property1", "property2"]
但我想要打印的是对象 my_object 的原型属性。
['sample1', 'sample2']
为了查看该对象的原型属性,我需要 console.log(object),然后从开发者工具中查找该对象的属性。
但由于我正在使用像 phaser.js、react.js 和 create.js 这样的第三方库,因此我不知道从这些库创建的对象的原型属性列表。
是否有 Object 的原型函数可以列出 JavaScript 对象的所有原型属性?
__proto__
并将其转换为数组是一个不好的主意?例如:var arr = Object.keys(my_object.__proto__).map(function (key) {return my_object.__proto__[key]});
- Bassem.__proto__
与Object.getPrototypeOf
类似,但已被弃用,在某些边缘情况下不起作用。此外,仅访问原型链的一个级别可能无法获取所有属性。顺便说一句,OP似乎对属性名称而非值感兴趣,因此可以省略.map(…)
。 - Bergi