为什么分配给Symbol.iterator不会引发错误?

时间:2019-03-04 19:17:26

标签: ecmascript-6 es6-symbol

在Windows上的Chrome中,我在控制台中找到了它:

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

Symbol.iterator(感谢)没有改变,但是为什么我分配给它的尝试没有出错?

1 个答案:

答案 0 :(得分:2)

在草率模式下,失败的分配不会导致异常。请改用strict mode

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

未捕获的TypeError:无法分配为函数iterator的只读属性function Symbol() { [native code] }