我正在遍历一个对象并将属性名称与给定参数进行比较;如果匹配,我希望执行属性函数。除了明确地之外,我怎么称呼它?
物体:
@headers =
'foo': (obj)->
# do stuff
例行公事:
resolve: ('foo', item, obj)->
for prop of @headers
if prop == arguments[0]
# execute obj's foo property
我正在遍历一个对象并将属性名称与给定参数进行比较;如果匹配,我希望执行属性函数。除了明确地之外,我怎么称呼它?
物体:
@headers =
'foo': (obj)->
# do stuff
例行公事:
resolve: ('foo', item, obj)->
for prop of @headers
if prop == arguments[0]
# execute obj's foo property
好吧,您需要命名第一个参数,因为 CoffeeScript 不希望字符串存在。
但是,如果我理解正确,您可以在成员运算符?
之后使用“ existential ”运算符(记录在Operators 和 Aliases的小节中):
resolve: (prop, item, obj)->
if @headers[prop]?
obj[prop]()
这将编译为:
resolve: function(prop, item, obj) {
if (this.headers[prop] != null) {
return obj[prop]();
}
}
而且,如果您还想测试该方法obj
,您可以?
在成员运算符和参数/调用括号之间放置:
obj[prop]?()