将CoffeeScript问号语法翻译成Javascript

时间:2013-10-17 17:22:52

标签: javascript coffeescript

我有一个使用问号运算符的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();
}

我错过了什么吗?

1 个答案:

答案 0 :(得分:4)

您的翻译很好,但您可能希望返回item.close()的返回值(因为这就是CoffeeScript版本所做的)。 CoffeeScript的翻译可能更通用(例如,如果a?.foo是数字a,它将处理0)。如果您知道item是一个对象,那么您的版本就可以了。