CoffeeScript-传递一个带有参数的匿名函数
CoffeeScript - pass an anonymous function with parameters
我不知道如何传递一个接受参数的匿名函数。这是我的情况:
class MyClass
constructor: (@a) ->
console.log("MyClass: created " + @a)
show: ->
console.log("MyClass: show " + @a)
然后,使用UndercoreJS,这就起作用了:
_.map listOfMyClassObjects, (obj) -> obj.show
但为了方便起见,我想将对map的调用封装在一个单独的函数中:
allMyClass(fun) ->
_.map listOfMyClassObjects, fun(obj)
这样以后我可以做:
allMyClass((obj) -> obj.show())
但浏览器控制台显示:
Uncaught ReferenceError: fun is not defined
(anonymous function)
require../browser.CoffeeScript.run
...
什么是正确的synthax?还有,可以这样简化吗?
allMyClass(fun) ->
_.map listOfMyClassObjects, obj[fun]()
allMyClass(show())
更新:
根据Thilo的回答,函数调用中存在语法错误。但是,在对映射迭代结果调用函数时也出现了错误。工作版本是这样的:
allMyClass = (fun) ->
_.map listOfMyClassObjects, (obj) -> fun(obj)
不过,如果有将类方法传递给allMyClass
函数的较短版本,则仍在徘徊。
更新2:
简化可能是这样的:
allMyClass = (fun) ->
_.map listOfMyclassObjects, (obj) -> obj[fun]()
allMyClass("show")
向fun
传递参数需要传递更多的参数。
您的意思是定义一个函数吗
allMyClass = (fun) ->
_.map listOfMyClassObjects, fun(obj)
或方法
allMyClass : (fun) ->
_.map listOfMyClassObjects, fun(obj)
没有=
或:
,您只是在呼叫allMyClass
。
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- AngularJS:我可以跳过函数参数回调吗
- 函数未将值作为参数传递
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 为什么不'我们在javascript中使用函数参数的数据类型
- 你好,这是测试用例,我必须在函数中传递n个参数
- JavaScript - 多参数函数,它是多个图像库的字符串
- 如何从两个参数函数返回随机整数
- 以无点风格在Ramda中编写一个无参数函数
- JS:将单参数函数转换为可链接函数
- 正则表达式类似于Javascript中的参数函数
- 将 $' 值传递给替换的关联参数函数
- "这个“;在参数函数中
- 如何向jquery插件发送参数函数
- 将参数函数Node.js从一个js传递到另一个js
- 如何在javascript参数函数中传递PHP post方法字符串
- 装饰 Javascript Promise.then 以便参数函数接收附加参数
- 正在分析setInterval ID'是的's参数函数
- 如何根据一个参数函数计算年龄
- 对象参数/函数和/或三元运算符混淆