2
我看到这个谈话(具体时间安排是故意这只是对迭代器的魔力,还是这是一个更一般的基础事物?
https://www.youtube.com/watch?v=lil4YCCXRYc?t=24m51s
在板有这一段代码(实际上是类似的一个):
var it = [8,9 0][Symbol.iterator]()
//This gives me an ArrayIterator{...}
我注意到,如果我尝试做它在2个步骤,在Chrome中,它失败:
var nums = [9,8,7]
var it = nums[Symbol.iterator]
it = it()
// in the console, this throws 'Uncaught TypeError: Cannot convert undefined or null to object(…)'
几乎知道一些JavaScript,我注意到,如果我做了
var it = nums[Symbol.iterator]
it.apply(nums)
// I again get the ArrayIterator
这是什么魔法? var x = obj[method]()
和var x = obj[method]; x = x()
有趣的是,我知道这个上下文切换,它仍然让我!我主要用Python工作,并且在那里,绑定什么,保持绑定。你必须明确地去绑定它,而在JS中,你明确地绑定它...很酷,很酷。 –