方法链接,第一个是 运行?

Method chaining, which is run first?

这不是

的副本

不知方法链中的执行顺序是否有通用规则?当运行宁以下代码:

obj.method1().method2();

运行哪个先:method1()还是method2()

我假设必须在 method2() 之前调用 method1()。否则,由于尚未调用 method1(),因此 method2() 没有要处理的返回对象。这是 JavaScript 的实验确认:http://jsfiddle.net/Imabot/sjo9gxfq/60/

但是,我找到了一个针对前面语句的示例 D3.js,其中对象似乎在创建之前就被选中了:

d3.select('body')
    .selectAll('p')
    .data(dataset)
    .enter()
    .append('p')
    .text('Paragraph');

先调用哪个?

方法是从左到右调用的。

D3.js 是一个特例,这篇文章很好地解释了会发生什么: