2

As in this function, that toggles the 'completed' state of a todo item from true to false and back:

toggle: function() {
  this.save({
    completed: !this.get('completed') 
  });
}
4

2 回答 2

9

假设您知道这!意味着否定(转换为布尔值并返回相反的值),您发布的内容与

!(this.get('completed')) 

请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence

请注意,该表位于该表.之前!。这就是为什么 the!与整个表达式.相关联,而get()在 the!发挥作用之前与相关联。

于 2013-09-07T18:27:26.053 回答
0

另一个答案是技术上很好的一般答案,并且绝对正确。

对于您的特定情况,您在当前 ( this) 对象中有一个名为的方法,get()该方法返回一个布尔值。!因此,在布尔返回值 from 上使用 not 运算符 ( ) 会get()反转它,因此如果get()返回true,则表达式变为false(etc)。这意味着您传递的值与返回的值相反get(),作为completed传递给调用的对象的属性值save()

于 2013-09-07T18:54:52.107 回答