使用CoffeeScript,我希望能夠迭代類的靜態方法和變量。更具體地說,我想訪問Math
中的所有功能。是否可以使用CoffeeScript來迭代類的靜態變量和方法?
我在尋找類似的功能:
for x in Math
console.log (x + ": " + Math[x])
這可能嗎?
使用CoffeeScript,我希望能夠迭代類的靜態方法和變量。更具體地說,我想訪問Math
中的所有功能。是否可以使用CoffeeScript來迭代類的靜態變量和方法?
我在尋找類似的功能:
for x in Math
console.log (x + ": " + Math[x])
這可能嗎?
從以前stackoverflow
問題:How can I list all the properties of Math object?
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構造函數 so Math
是一個不好的例子。如果您使用自定義類構造函數,它將正常工作。
你沒有檢查它,是嗎? –
這似乎沒有工作。 – JeremyFromEarth
對不起。你是對的。它不起作用,因爲Math是一個本地構造函數。這隻適用於自定義構造函數。看我的編輯。 – rescuecreative