0

以下两个代码段有什么区别:

function HelloService(){
  var service = this;
  service.itemList = []

  service.hello = function(){    
    return "Hello World!!";
  };

  service.addItem = function(){
    service.itemList.push(1);
  }
}

function HelloService(){
  var service = this;
  var itemList = [];

  var hello = function(){    
    return "Hello World!!";
  };

  service.addItem = function(){
    itemList.push(1);
  }

}

因为据我了解,thishello 函数内部和 hello 函数外部指向同一个实例。

有人可以向JAVA解释上述问题吗?

编辑:我添加了一个addItem功能。在这里service.itemList,我不明白. 您能解释一下该函数内部的区别吗?var itemListaddItem function

4

1 回答 1

2

Javascript 函数中的局部变量不会作为this. 第一个相当于:

function HelloService(){
  this.hello = function(){    
    return "Hello World!!";
  };
}

但不是:

function HelloService(){
  var hello = function(){    
    return "Hello World!!";
  };
}

什么都不做,因为引用的函数hello从未使用过,并且在 HelloService 范围之外无法访问。

于 2016-10-31T23:51:45.353 回答