suchen

Heim  >  Fragen und Antworten  >  Hauptteil

一个关于作用域 闭包相关的问题 --JS

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


高洛峰高洛峰3033 Tage vor552

Antworte allen(1)Ich werde antworten

  • 三叔

    三叔2016-11-02 13:06:46

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

    Antwort
    0
  • StornierenAntwort