2012-11-23 159 views
3

下面的函數內的表達式求值從右到左從右到左評估,從左至右鏈方法

function foo(){ 

var a = b = c; 

} 

所以它就像是輸入這樣

var a = (b = 0) 

然而,當方法被鏈接在一起,他們從左到右讀。在這個對象的方法...

var obj = { 
    value: 1, 
    increment: function() { 
     this.value += 1; 
     return this; 
    }, 
    add: function (v) { 
     this.value += v; 
    return this; 
    }, 
    shout: function() { 
     alert(this.value); 
    } 
}; 

可以這樣調用,從左向右計算

obj.increment().add(3).shout(); // 5 

//由一個

obj.increment(); 
obj.add(3); 
obj.shout(); // 5 

所以不是叫他們一個,我想我知道什麼時候從左到右,從左到右閱讀,但是有一條規則,我需要知道哪些我不知道?

回答

4

規則稱爲「操作符關聯性」,它與運算符優先級一起,是大多數語言中每個運算符的一個屬性(算術運算,成員訪問,是一元運算還是二元運算等)。關聯性通常由語言規範定義,通常可以在書籍,教程,作弊表格等中找到。 JavaScript的第一個谷歌搜索結果之一是:http://www.javascriptkit.com/jsref/precedence_operators.shtml