Heim Web-Frontend js-Tutorial Zusammenfassung von Function.prototype.apply() und Function.prototype.call()_Grundkenntnisse

Zusammenfassung von Function.prototype.apply() und Function.prototype.call()_Grundkenntnisse

May 16, 2016 pm 03:03 PM

Ich vergesse immer die Verwendung dieser beiden Dinge und schreibe sie für eine Aufzeichnung auf.
Ihre Funktionen sind genau gleich, aber die übergebenen Parameter sind unterschiedlich

Bewerben

Apply akzeptiert zwei Parameter. Der zweite Parameter ist eine indizierte Sammlung (durchlaufbares Objekt). aufgerufen:

1

2

3

4

var func = function(a, c, c){

  alert([a,b,c]); //[1,2,3]

}

func.apply(null, [1,2,3]);

Nach dem Login kopieren

Anruf

Die im Aufruf übergebenen Parameter sind nicht festgelegt. Der erste Parameter stellt auch den This-Zeiger im Funktionskörper dar. Beginnend mit dem zweiten Parameter wird jeder Parameter der Reihe nach an die Funktion übergeben:

1

2

3

4

var func = function(a, b, c){

  alert([a,b,c]); //[1,2,3]

}

func.call(null, 1,2,3);

Nach dem Login kopieren

call ist ein syntaktischer Zucker für „aply“. Wenn der erste Parameter null ist, zeigt dieser im Funktionskörper auf das Hostobjekt, das ein Fenster im Browser ist.

Der Zweck des Anrufs und der Bewerbung

1. Ändern Sie dies so, dass es auf
zeigt

Das ist das Beispiel oben

2.Function.prototype.bind

Mock Function.prototype.bind

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

Function.prototype.bind = function(context){

  var self = this;

  return function(){

    return self.apply(context, arguments);

  }

};

 

var obj = {

  name: 'cxs'

};

 

var func = function(){

  alert(this.name); //cxs

}.bind(obj);

 

fun();

Nach dem Login kopieren

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Ersetzen Sie Stringzeichen in JavaScript Ersetzen Sie Stringzeichen in JavaScript Mar 11, 2025 am 12:07 AM

Ersetzen Sie Stringzeichen in JavaScript

Benutzerdefinierte Google -Search -API -Setup -Tutorial Benutzerdefinierte Google -Search -API -Setup -Tutorial Mar 04, 2025 am 01:06 AM

Benutzerdefinierte Google -Search -API -Setup -Tutorial

Beispielfarben JSON -Datei Beispielfarben JSON -Datei Mar 03, 2025 am 12:35 AM

Beispielfarben JSON -Datei

8 atemberaubende JQuery -Seiten -Layout -Plugins 8 atemberaubende JQuery -Seiten -Layout -Plugins Mar 06, 2025 am 12:48 AM

8 atemberaubende JQuery -Seiten -Layout -Plugins

Erstellen Sie Ihre eigenen AJAX -Webanwendungen Erstellen Sie Ihre eigenen AJAX -Webanwendungen Mar 09, 2025 am 12:11 AM

Erstellen Sie Ihre eigenen AJAX -Webanwendungen

Was ist ' this ' in JavaScript? Was ist ' this ' in JavaScript? Mar 04, 2025 am 01:15 AM

Was ist ' this ' in JavaScript?

Verbessern Sie Ihr JQuery -Wissen mit dem Quell Betrachter Verbessern Sie Ihr JQuery -Wissen mit dem Quell Betrachter Mar 05, 2025 am 12:54 AM

Verbessern Sie Ihr JQuery -Wissen mit dem Quell Betrachter

10 Mobile Cheat Sheets für die mobile Entwicklung 10 Mobile Cheat Sheets für die mobile Entwicklung Mar 05, 2025 am 12:43 AM

10 Mobile Cheat Sheets für die mobile Entwicklung

See all articles