3

使用 CoffeeScript,我希望能够遍历类的静态方法和变量。更具体地说,我想访问Math.

我正在寻找类似于以下的功能:

for x in Math
    console.log (x + ": " + Math[x])

这可能吗?

4

2 回答 2

8

从上一个stackoverflow问题:如何列出 Math 对象的所有属性?

Object.getOwnPropertyNames( Math )
于 2013-10-03T22:28:08.553 回答
-1

是的,但您需要做的是迭代对象的原型。在 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是一个不好的例子。如果您使用自定义类构造函数,它将正常工作。

于 2013-10-03T17:40:01.190 回答