Ожидаемые результаты сильно отличаются от фактических результатов, когда я случайно обнаружил эту проблему в Интернете.
var a = {n: 1} var b = a; ax = a = {n: 2} console.log (ax); console.log (bx); UndFinedObject {n: 2}Если я разберусь, результатом будет то, что я подумал
var a = {n: 1} var b = a; a = {n: 2}; ax = {n: 2} console.log (ax); // объект {n: 2} console.log (bx); // undefinedпроанализировать:
ax = a = {n: 2}
Операция назначения JS объединяется с правом, что эквивалентно AX = (a = {n: 2})
Оценка операции JS слева направо (PS: обсуждается с коллегой, он сказал, что это было слева направо, и я подумал, что это было справа налево, но в итоге я обнаружил, что я неправ)
1) ax = (конечный результат в скобках)
После обнаружения того, что x атрибут A не существует, добавьте атрибут x в объект, на который указывает A. Этот атрибут X должен присвоить ему результат. Хорошо, я буду подождать результат.
2) Поскольку вы хотите получить результат в кронштейнах, AX продолжает ждать результата в скобках, чтобы вернуть его, поэтому вы начинаете оценивать a = {n: 2}, а затем верните его в этот новый атрибут x
3) вернуться к a = {n: 2} в скобках произошло изменение указания
Простая реализация непрерывного назначения JS выше - это все контент, которым я делюсь с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.