-Ist es eine richtige Art und Weise .call() zu verwenden, um eine Funktion sofort nach Erklärung zu nennen, anstatt die Syntax mit Pars wie: Anstelle der Verwendung von:Ist es richtig, .call() zu verwenden, um eine Funktion sofort aufzurufen?
(function([params]){
//Code goes here
})(/*params*/);
Können wir dies tun ?:
Ich lese in einem Blog oder einer Seite, die mit .call() verwendet werden kann, um Funktionen anonym aufrufen, so dass ich davon ausgehe, dass es richtig ist, es zu tun. Aber ich bin mir nicht sicher, welcher Weg der 2 besser ist. Ich sehe es könnte einfacher sein, die erste Methode zu verwenden.
Kann ich auch sofort Funktionen aufrufen, um innerhalb eines Literalobjekts oder eines Funktionskonstruktors eine Variable innerhalb dieses Objekts zu erstellen, deren Wert berechnet wird, indem eine Art von Algorithmen innerhalb einer sofort selbstausgeführten Funktion ausgeführt wird? IE: Das Beispiel ist sehr stupidi Beispiel, aber ... Sorry für das dumme Beispiel könnte ich glaube nicht an etwas besser:
function Person(name, sex){
this.name = name;
this.sex = sex;
this.description = (function(){
let desc = "";
let gender = "";
if (sex == "male"){
gender = "male";
}
else if (sex == "female"){
gender = "woman";
}
desc += "I am a "+gender+" and my name is "+name;
return desc;
})(name, sex);
}
var p1 = new Person("Alice", "female");
alert(p1.description);
ich es getestet und es funktioniert, so nehme ich an komplexere Dinge sein könnten getan und Variablen privat. Habe ich recht? Ich wäre dankbar, wenn Sie meine Zweifel darüber lösen könnten.
Der Grund, '.call()' zu verwenden, anstatt nur die Funktion aufzurufen, ist, dass Sie 'this' benötigen, um an einen bestimmten Wert gebunden zu werden. Wenn Sie das nicht brauchen, gibt es keinen Grund, '.call()' zu verwenden (aber es tut nichts weh). – Pointy