Was ist der Unterschied zwischen den beiden folgenden Codesegmenten ist:Javascript: Konstruktorfunktion dieses Schlüsselwort
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);
}
}
Denn soweit ich die this
in der hallo Funktion und außerhalb der hallo Funktion verstehen verweist auf dieselbe Instanz.
Könnte jemand das obige Problem w.r.t zu JAVA erklären?
EDIT: Ich habe eine addItem
Funktion hinzugefügt. Hier verstehe ich nicht den Unterschied zwischen service.itemList
und var itemList
innerhalb der . Können Sie den Unterschied innerhalb dieser Funktion erklären?
'this' innerhalb der Funktion, hängt vollständig davon ab, wie Sie die Funktion – adeneo
im ersten aufrufen (mit' this.hello') können Sie die Hallo-Funktion von außen aufrufen ('console.log (new HelloService() .hello()); '). In der zweiten ist hello nur eine lokale Variable, die von außen nicht zugänglich ist. – FirePanther
Es ist wirklich wert, die genaue Bedeutung von "das" in JS nachzulesen. Verstehen Sie, dass es fast nichts mit einem Klassenkonzept wie in Java zu tun hat. Wie Adeneo sagt, geht es um den Anruf, nicht um die Erklärung. – DrC