我根本无法理解为什么它会给出这个错误.
这是我在chrome控制台上测试的内容:
> var mySet;
<- undefined
> mySet = new Set;
<- Set {}
> mySet.add('foo', 'bar', 'baz') // Worked as expected
<- Set {"foo"} // just the first argument was added
> ['bar', 'baz'].forEach(mySet.add)
X-> VM1529:1 Uncaught TypeError:
Method Set.prototype.add called on incompatible receiver undefined(…)
Run Code Online (Sandbox Code Playgroud)
提前致谢.
Yur*_*kym 13
在这种情况下,当您将其作为回调传递时,add方法会丢失其内部this上下文,因此您需要使用bind:
['bar', 'baz'].forEach(mySet.add.bind(mySet));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6556 次 |
| 最近记录: |