我有一个使用问号运算符的CoffeeScript代码段。我需要翻译成Javascript语法。该片段如下所示。
closeItem: (item) ->
item.close() if item?.close and not item.isClosed
我试图遇到CoffeeScript网站,结果如下。
({
closeItem: function(item) {
if ((item != null ? item.close : void 0) && !item.isClosed) {
return item.close();
}
}
});
这是对的吗?根据我的知识(我是Javascript和CoffeeScript的新手)我会翻译为
closeItem: function(item) {
if(item && item.close && !item.isClosed) item.close();
}
我错过了什么吗?
答案 0 :(得分:4)
您的翻译很好,但您可能希望返回item.close()
的返回值(因为这就是CoffeeScript版本所做的)。 CoffeeScript的翻译可能更通用(例如,如果a?.foo
是数字a
,它将处理0
)。如果您知道item
是一个对象,那么您的版本就可以了。