【发布时间】:2013-06-10 05:19:03
【问题描述】:
我是咖啡脚本的新手,所以我想知道我这样做是否正确。我在 JavaScript 中有一个 forEach 的原始实现,如下所示:
if(!Array.prototype.forEach){
Array.prototype.forEach = function(callback, context){
for(var i=0; i < this.length; i++){
callback.call(context || null, this[i], i, this);
}
};
}
这是我目前在咖啡脚本中的编写方式
if not Array.prototype.forEach
Array.prototype.forEach = (callback, context) ->
context ?= null
callback context, @[i], i, @ for i in @
但我想知道它是否正确,尤其是上下文空检查似乎是多余的,以及上下文是否正确应用,好像我仍在使用call。我试图在咖啡脚本中查找一些关于apply 和call 的示例,但到目前为止还没有那么幸运。
【问题讨论】:
-
好吧,显然it 没有使用
call。它像map一样工作,因为它返回一个results数组。 -
coffee-script中有一个用于原型的快捷方式。所以,最好写Array::forEach而不是Array.prototype.forEach。