4

以下函数中的表达式从右到左求值

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

1 回答 1

8

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

于 2012-11-24T00:09:43.507 回答