Javascript 的意思!这是。进入主干网todo MVC应用程序

Javascript 的意思!这是。进入主干网todo MVC应用程序,javascript,backbone.js,Javascript,Backbone.js,在exampl主干Todo MVC应用程序中遇到以下内容,对我来说没有任何意义,在Google上到处搜索,没有骰子 在todo模型中有以下切换方法: // Toggle the `completed` state of this todo item. toggle: function() { this.save({ completed: !this.get('completed') }); } 我一直都明白这个道理!意思是“不”,这对我来说没有意义,因为我假设在触发切换事件时,

在exampl主干Todo MVC应用程序中遇到以下内容,对我来说没有任何意义,在Google上到处搜索,没有骰子

在todo模型中有以下切换方法:

// Toggle the `completed` state of this todo item.
toggle: function() {
  this.save({
    completed: !this.get('completed')
  });
}
我一直都明白这个道理!意思是“不”,这对我来说没有意义,因为我假设在触发切换事件时,一个人想要保存完成的状态

我遗漏了什么?

它的意思是“不”,这就是实际切换状态的原因。
运算符在本例中是一个逻辑运算符,并返回互补方布尔值

this.get('completed')
调用将获取
completed
属性的当前状态,例如值
true

运算符将获得互补值,例如值
false

此值用于创建对象文字,例如
{completed:false}

对象用于调用
save
方法,因此对象中的值用作
completed
属性的新值。

基本原则: 假设我们有一个方法,返回一个布尔状态

var state = obj.getState('completed');
如果
getState
返回
true
,则变量
state
也是
true

现在:

我们反转结果,这意味着:如果
getState
返回
true
,变量
state
被设置为
false

为了实现像
true-false-true-false
这样的切换,我们可以

 a = !a

如果a为真,则为假,如果为假,则为真等等。

谢谢,两个答案都很好,但我选择了另一个,因为我认为它在上下文中回答得更多,因此可能会帮助其他人找到这个问题。
 a = !a