2014-02-23 46 views
2

遇到的骨幹爲例藤堂MVC應用程序下面,並且它不使待辦事項模型內的任何意義,我,周圍一派,沒有骰子,!this.get的骨幹待辦事項MVC應用程序的意義

有這種切換方法:

// Toggle the `completed` state of this todo item. 
toggle: function() { 
    this.save({ 
    completed: !this.get('completed') 
    }); 
} 

我一直都明白這個!意思是「不」,這對我來說沒有意義,因爲我會在觸發切換事件時想要保存完成狀態。

我錯過了什麼?

回答

1

它的意思是「不」,這就是實際切換狀態。在這種情況下,!運算符是邏輯運算符,並返回complementaryarty布爾值。

this.get('completed')調用將獲得completed屬性的當前狀態,例如值true

!運算符將獲得互補值,例如值false

該值用於創建對象文字,例如{ completed: false }

該對象用於調用save方法,因此該對象中的值用作completed屬性的新值。

2

基本原理: 假設,我們有一個方法,返回一個布爾狀態。

var state = obj.getState('completed'); 

如果getState返回true,可變statetrue以及

現在:

var state = !obj.getState('completed'); 

我們反相的結果,這意味着:如果getState返回true,可變state設置爲false

爲了有一個像true - false - true - false一個切換,我們可以做

a = !a 

如果是真實的,它那麼假的,如果是假的,它是那麼真實等

+0

感謝,無論是偉大的答案,但我選擇了另一個,因爲我認爲它在上下文中回答更多,所以可以幫助其他人找到這個問題。 – pushplaybang

相關問題