方法链接,第一个是 运行?
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 是一个特例,这篇文章很好地解释了会发生什么:
这不是
不知方法链中的执行顺序是否有通用规则?当运行宁以下代码:
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 是一个特例,这篇文章很好地解释了会发生什么: