一个关于作用域 闭包相关的问题 --JS
高洛峰
高洛峰 2016-11-02 13:06:26
0
1
501

我创建了两个变量,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};
        }
      };    
}


高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

모든 응답(1)
三叔

return {}//{}是对象字面量创建方式,这是一个新的对象了。

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!