Да, как предположили комментаторы, это особый синтаксис для Observable.Вы видите ячейку, которая использует блок, как , упомянутое во введении к коду .
. Как вы можете думать об этом относительно другого JavaScript, это то, что он вроде IIFE , но с дополнительным учетом того, что, если он ссылается на другие ячейки, он автоматически разрешает их.Так что в ванильном JavaScript это будет выглядеть так:
chart = (() => {
const svg = d3.select(DOM.svg(width, height));
const g = svg.append("g")
.selectAll("g")
.data(bins)
.join("g");
// [...]
return svg.node();
})()
На самом деле это примерно то, к чему они компилируются.Конкретный синтаксис таков, потому что должно быть ясно, что это код, который запускается при изменении ссылок - см. , как Observable запускает для подробностей об этом.В отличие от IIFE, ячейка в Observable может запускаться несколько раз, если что-то, на что она ссылается, например, генератор или Promise, изменяется.