Ответ 1
Его получают от справа налево. iee
document.location.hash = this.slug = this.sliceHashFromHref(href)
вывод/значение
this.sliceHashFromHref(href)
присваивается document.location.hash = this.slug
Я искал в интернетах, но не нашел подходящих критериев поиска, поэтому я подумал, что это будет лучшее место, чтобы спросить.
У меня есть утверждение JS, говорящее
document.location.hash = this.slug = this.sliceHashFromHref(href)
Как это работает?
Его получают от справа налево. iee
document.location.hash = this.slug = this.sliceHashFromHref(href)
вывод/значение
this.sliceHashFromHref(href)
присваивается document.location.hash = this.slug
Как это работает?
a = b
можно рассматривать как выражение и выражение .
Результат выражения b
.
Другими словами,
a = b = c;
который можно записать как
a = (b = c);
эквивалентно
b = c;
a = b;
Таким образом, ваш код эквивалентен:
this.slug = this.sliceHashFromHref(href);
document.location.hash = this.slug;
Довольно легко... Он присваивает результат от вызова this.sliceHashFromHref(href)
как к document.location.hash
, так и к this.slug
, поэтому оба свойства (переменные) содержат одно и то же значение после выполнения строки.
Имейте в виду область переменных!!
var A = B = C = 3; //A is local variable while B & C are global variables;
var A = 3 , B = 3, C = 3;// A B C are local variables;
В Javascript (и нескольких других языках, которые выводят свой синтаксис из C) присваивание оценивает элемент справа от символа = и присваивает его переменной слева. Элемент справа сам по себе может быть заданием с оператором =. Что происходит, так это вычисление самого правого выражения, значение, присвоенное средней переменной, а затем это значение присваивается переменной слева.
Короче говоря, это просто способ присвоить значение сразу нескольким переменным.