Почему присвоение Symbol.iterator не вызывает ошибку? - PullRequest
0 голосов
/ 04 марта 2019

В Chrome на Windows у меня есть это в консоли:

> Symbol.iterator
< Symbol(Symbol.iterator)
> Symbol.iterator = "Hello!";
< "Hello!"
> Symbol.iterator;
< Symbol(Symbol.iterator)

Так что Symbol.iterator (к счастью) не меняется, но почему моя попытка назначить ему не выдает ошибку

1 Ответ

0 голосов
/ 04 марта 2019

В небрежном режиме невыполненное назначение не вызывает исключения.Вместо этого используйте строгий режим :

(function(){ "use strict"; Symbol.iterator = "Hello" }())

Uncaught TypeError: Невозможно назначить только для чтения свойство iterator функции function Symbol() { [native code] }

...