我创建了两个变量,it、is,那么为什么这两个变量由一个函数创建,(没有调用new)但是nextIndex互不影响呢?
而且函数中的nextIndex变量还不会被销毁,是因为闭包的影响吗?
var it = makeIterator(['a', 'b']);
it.next()
var is = makeIterator(['a', 'b', 'c']);
console.log(is.next())// { value: "a", done: false }console.log(it.next())
// { value: "b", done: false }function makeIterator(array) { var nextIndex = 0; return {
next: function() { return nextIndex < array.length ?
{value: array[nextIndex++], done: false} :
{value: undefined, done: true};
}
};
}
人到中年有点甜
拉丁的传说
随时随地看视频慕课网APP
相关分类