javascript - 为什么 CoffeeScript 在以下情况下需要括号?

标签 javascript coffeescript

我是 CoffeeScript 初学者。

这是来自:http://js2coffee.org/ 的输出

.js:

var prevPost = Posts.findOne({position: this.position - 1});

.咖啡:

prevPost = Posts.findOne(position: @position - 1)

.js:

Posts = new Meteor.Collection('posts');

.咖啡:

@Posts = new Meteor.Collection("posts")

为什么这里不加括号?

.js:

Posts.update(nextPost._id, {$set: {position: nextPost.position - 1}});

.咖啡:

Posts.update nextPost._id,
    $set:
      position: nextPost.position - 1

最佳答案

在 CoffeeScript 中,您可以在所有情况下省略括号:

prevPost = Posts.findOne position: @position - 1

@Posts = new Meteor.Collection "posts"

我认为去掉括号是一种风格问题。

如果您有省略括号的“心情”,请注意在没有参数时您不能省略它们。

这会将 foo 分配给 bar

bar = foo

这会将函数 foo 的返回值分配给 bar:

bar = foo()

关于javascript - 为什么 CoffeeScript 在以下情况下需要括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22508584/

相关文章:

javascript - CoffeeScript - 传递带参数的匿名函数

javascript - 在函数 CoffeeScript 中获取对象值

api - Hubot 脚本与 Asana 集成

javascript - 使用扩展运算符时如何处理未定义的 API 响应?

javascript - AngularJS 从不良数据中过滤掉字符串。

javascript - Jquery Slide 面板 - 加载下一个面板时关闭原始面板

javascript - Coffeescript 中的数组初始化

javascript - 在 JavaScript 中将变量分配给对象

javascript - 以编程方式删除 <script src ="/unwanted.js"../> 引用

Javascript:ReferenceError:未定义 MyClass