我是coffeescript的新手,很难理解我在atom.io项目中找到的一些代码。这是来自cursor.coffee文件的代码(此问题时的第306行)
moveToEndOfWord: ->
if position = @getEndOfCurrentWordBufferPosition()
@setBufferPosition(position)
变成了
Cursor.prototype.moveToEndOfWord = function() {
var position;
if (position = this.getEndOfCurrentWordBufferPosition()) {
return this.setBufferPosition(position);
}
};
我很难理解为什么if语句?由于正在使用赋值运算符而不是条件语句中的相等运算符,因此我理解要读取的代码
Cursor.prototype.moveToEndOfWord = function() {
var position = this.getEndOfCurrentWordBufferPosition();
return this.setBufferPosition(position);
};
任何可以解决这里发生的事情的光都会很棒。
答案 0 :(得分:1)
赋值表达式具有一个值,即已分配的值。因此if
语句使用赋值作为测试缓冲区位置的副作用。