使用 CoffeeScript,我希望能够遍历类的静态方法和变量。更具体地说,我想访问Math
.
我正在寻找类似于以下的功能:
for x in Math
console.log (x + ": " + Math[x])
这可能吗?
使用 CoffeeScript,我希望能够遍历类的静态方法和变量。更具体地说,我想访问Math
.
我正在寻找类似于以下的功能:
for x in Math
console.log (x + ": " + Math[x])
这可能吗?
从上一个stackoverflow
问题:如何列出 Math 对象的所有属性?
Object.getOwnPropertyNames( Math )
是的,但您需要做的是迭代对象的原型。在 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
是一个不好的例子。如果您使用自定义类构造函数,它将正常工作。