Javascript: конструктор функции это ключевое слово
В чем разница между следующими двумя сегментами кода:
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);
}
}
Потому что, насколько я понимаю, this
внутри функции hello и снаружи функция hello указывает на один и тот же экземпляр.
Может ли кто-нибудь объяснить вышеупомянутую проблему в отношении JAVA?
РЕДАКТИРОВАТЬ: я добавил addItem
функция. Здесь я не понимаю разницу между service.itemList
а также var itemList
внутри addItem function
, Не могли бы вы объяснить разницу внутри этой функции?
1 ответ
Локальные переменные в функциях Javascript не добавляются как свойства this
, Первый эквивалентен:
function HelloService(){
this.hello = function(){
return "Hello World!!";
};
}
Но нет:
function HelloService(){
var hello = function(){
return "Hello World!!";
};
}
Который ничего не делает, так как функция, на которую ссылается hello
никогда не используется и не доступен вне области HelloService.