Ich bin neu in JavaScript und Node.js und lerne OOP und stieß auf zwei Möglichkeiten, eine Methode aufzurufen.Aufruf einer Methode auf zwei verschiedene Arten
Mein Code:
var Person = function(name) {
this.fName = name;
};
Person.prototype.sayHello = function(){
console.log("Hello, I am " + this.fName);
}
var person1 = new Person("mike");
person1.sayHello();
var helloFunction = person1.sayHello;
helloFunction.call(person1);
Ausgang:
Hello, I am mike
Hello, I am mike
Beide Anwendungen die gleichen Ergebnisse zu erzielen. Gibt es eine Situation, in der eine Version angemessener ist als die andere? Gibt es Vorteile/Nachteile für die beiden Anrufe?
'Proper 'Art der Dinge zu tun ist umstritten. Es hängt alles von Ihrem Anwendungsfall ab. Versuchen Sie nur einer Konvention zu folgen, es sei denn, Sie können sie nicht vermeiden. – stackErr
Als eine Randnotiz, siehe [this] (http://stackoverflow.com/questions/35949554/invoking-a-function-without-parentheses) – Amit
Der zweite Weg ist nützlich, wenn Sie 'sayHello' an einen anderen gebunden aufrufen müssen 'this' Kontext, der auch eine 'fName'-Eigenschaft enthält. Abgesehen davon, versuchen Sie, den ersten Weg zu folgen, den Sie gefunden haben, und werfen Sie einen Blick auf die im Jahr 2015 eingeführten Schlüsselwörter "class" und "extends". – Chiru