Rodionc
@Rodionc
IT security, SIEM, IDM...

Порядок вызова методов объекта в JS: разом или последовательно?

Добрый день!
Последний раз сталкивался с JavaScript лет 10 назад, сейчас смотрю на код и не понимаю, как это работает:
var bar = svg.selectAll(".bar")
      .data(bins)
    .enter().append("g")
      .attr("class", "bar")
      .attr("transform", function(d) { return "translate(" + x(d.x0) + "," + y(d.length) + ")"; });

Вопросы:
1. Имеет ли значение отступ (в строке .enter)?
2. Эти все вызовы методов применяются к объекту последовательно: т.е. меняется ли объект между вызовами или эти все изменения применяются к объекту скопом?
3. Изменится ли результат выполнение если написать не
.enter().append("g")
а
.enter()
.append("g")

Сорри, если сумбурно.
  • Вопрос задан
  • 259 просмотров
Решения вопроса 1
Lynn
@Lynn
nginx, js, css
1 и 3 — нет. В данном случае пробелы ни на что не влияют.

2. На самом деле каждый вызов возвращает какой-то ответ и следующий метод вызывается у этого объекта.
Просто часто есть соглашение, что вызов метода возвращает оригинальный объект. Но что именно в данном случае возвращается нужно смотреть в документации по конкретной библиотеке.

Вообще это можно (нужно) читать так:
var tmp0 = svg.selectAll(".bar");
var tmp1 = tmp0.data(bins);
var tmp2 = tmp1.enter();
var tmp3 = tmp2.append("g");
var tmp4 = tmp3.attr("class", "bar");
var tmp5 = tmp4.attr("transform", function(d) { return "translate(" + x(d.x0) + "," + y(d.length) + ")"; });
var bar = tmp5;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы