Vergessen Sie immer die Verwendung dieser beiden Dinge und schreiben Sie sie auf, um eine Aufzeichnung zu machen.
Ihre Funktionen sind genau gleich, aber die eingegebenen Parameter sind unterschiedlich
anwenden
anwenden akzeptiert zwei Parameter. Der erste formuliert das Zeigen dieses Objekts in der Funktionskörper, und das zweite ist ein Satz mit Einweisen (das Objekt kann durchquert werden). Die Methode anwenden übergibt die Elemente in diesem Satz als Parameter an die aufgerufene Funktion:
var func = function (a, c, c) {alert ([a, b, c]); //;1,2,3 weibliche Func.apply(null, [1,2,3]);Anruf
Die im Anruf übergebenen Parameter werden nicht festgelegt. Das gleiche wie angewendet ist, dass der erste Parameter diesen Zeigen im Funktionskörper auch darstellt. Nach dem Start des zweiten Parameters wird jeder Parameter in Sequenz in die Funktion übergeben:
var func = function (a, b, c) {alert ([a, b, c]); //;1,2,3 weibliche Func.call(null, 1,2,3);Call ist ein syntaktischer Zucker von Aply. Wenn der erste Parameter null ist, weist dies in der Funktionskörper auf das Host -Objekt hin, das sich im Browser ein Fenster befindet.
Verwendung von Anrufe und bewerben Sie sich
1. Ändern Sie diesen Punkt
Das obige Beispiel ist
2. Funktion.Prototyp.bind
Simulate function.prototype.bind
Function.prototype.bind = Funktion (Kontext) {var self = this; return function () {return self.apply (Kontext, Argumente); }}; var obj = {name: 'cxs'}; var func = function () {alert (this.name); // cxs} .bind (obj); Fun ();