以下两个代码段之间有什么区别:
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);
}
}
因为据我所知,hello函数内部的this
和hello函数外部指向同一个实例。
有人可以向JAVA解释上述问题吗?
编辑:我添加了addItem
功能。在这里,我不理解service.itemList
中var itemList
和addItem function
之间的区别。你能解释一下这个功能的区别吗?
答案 0 :(得分:2)
Javascript函数中的局部变量不会作为this
的属性添加。第一个相当于:
function HelloService(){
this.hello = function(){
return "Hello World!!";
};
}
但不是:
function HelloService(){
var hello = function(){
return "Hello World!!";
};
}
由于hello
引用的函数从未使用过,并且在HelloService范围之外无法访问,因此无效。