从右到左的评估,从左到右的方法

时间:2012-11-23 23:56:53

标签: javascript

以下函数中的表达式从右到左进行计算

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

所以,我想我知道什么时候从左到右阅读,但有一条规则,我需要知道哪些我不知道?

1 个答案:

答案 0 :(得分:6)

规则被称为“运算符关联性”,并且与运算符优先级一起,是大多数语言中每个运算符的属性(算术,成员访问,一元或二元等)。关联性通常由语言规范定义,通常可以在书籍,教程,备忘单等中找到。 javascript的第一个谷歌搜索结果之一是:http://www.javascriptkit.com/jsref/precedence_operators.shtml