Метод цепочки, который запускается первым? - PullRequest
1 голос
/ 28 января 2020

Это не дубликат При объединении методов в PHP Можно ли определить, какой метод был вызван первым?


Интересно, существует ли общее правило для порядка выполнения в методе цепочки? При выполнении следующего кода:

obj.method1().method2();

Что запускается первым: method1() или method2()?

Я предполагаю, что method1() необходимо обязательно вызвать перед method2(). В противном случае, поскольку method1() еще не вызван, method2() не имеет возвращаемого объекта для обработки. Вот экспериментальное подтверждение для JavaScript: http://jsfiddle.net/Imabot/sjo9gxfq/60/

Но я нашел пример против предыдущего оператора с D3. js, где объекты кажутся выделенными перед созданием :

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

Что называется первым?

1 Ответ

1 голос
/ 28 января 2020

Методы вызываются слева направо.

D3. js является частным случаем, эта статья хорошо объясняет, что происходит: Мышление с объединениями

...