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中,你明確地綁定它...很酷,很酷。 –