4

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

我错过了什么吗?

4

1 回答 1

4

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

于 2013-10-17T17:25:30.870 回答