使用CoffeeScript,我希望能够遍历类的静态方法和变量。更具体地说,我希望能够访问Math
中的所有功能。
我正在寻找类似于以下的功能:
for x in Math
console.log (x + ": " + Math[x])
这可能吗?
答案 0 :(得分:6)
来自之前的stackoverflow
问题:How can I list all the properties of Math object?
Object.getOwnPropertyNames( Math )
答案 1 :(得分:0)
是的,但您需要做的是迭代Object的原型。在CoffeeScript中,它看起来像这样:
for key, value of MyClass.prototype
console.log key, ':', value
编辑:
在JavaScript中就是这样:
var i;
for (i in MyClass.prototype) {
// This condition makes sure you only test real members of the object.
if (Object.prototype.hasOwnProperty.call(MyClass.prototype, i)) {
console.log(i, ':', MyClass.prototype[i]);
}
}
编辑2:
有一点需要注意:这不适用于原生JavaScript构造函数,因此Math
是一个不好的例子。如果您使用自定义类构造函数,它将正常工作。