En fait, c'est une chose très simple. Lisez attentivement pendant dix minutes et vous passerez d'une confusion totale à une compréhension complète !
D'abord, comprenez ce qui suit :
Exemple 1

obj.objAge; // 17 obj.myFun() // 小张年龄 undefined
Exemple 2

shows() // 盲僧
Comparez la différence de `this` entre les deux. Dans le premier, `this` dans la sortie imprimée pointe vers `obj` ; dans le second, la fonction `shows()` déclarée globalement a `this` égal à `window` ;
1. `call()`, `apply()` et `bind()` sont tous utilisés pour redéfinir l'objet `this` !
Par exemple :

obj.myFun.call(db); // 德玛年龄 99 obj.myFun.apply(db); // 德玛年龄 99 obj.myFun.bind(db)(); // 德玛年龄 99
À part le `()` supplémentaire après la méthode `bind`, les résultats renvoyés sont tous identiques !
De cela, nous pouvons conclure que `bind` renvoie une nouvelle fonction, et vous devez l'appeler pour qu'elle soit exécutée.
2. Comparaison de `call`, `bind` et `apply` lors du passage de paramètres

obj.myFun.call(db,'成都','上海'); // 德玛 年龄 99 来自 成都去往上海 obj.myFun.apply(db,['成都','上海']); // 德玛 年龄 99 来自 成都去往上海 obj.myFun.bind(db,'成都','上海')(); // 德玛 年龄 99 来自 成都去往上海 obj.myFun.bind(db,['成都','上海'])(); // 德玛 年龄 99 来自 成都, 上海去往 undefined
Une différence subtile !
Il n'est pas difficile de voir, à partir des quatre résultats ci-dessus :
Le premier paramètre de `call`, `bind` et `apply` est l'objet vers lequel `this` pointe. La différence intervient avec le deuxième paramètre :
Les paramètres de `call` sont placés directement. Les deuxième, troisième et nième paramètres sont tous séparés par des virgules et placés directement après lui.obj.myFun.call(db,'Chengdu', ... ,'string' )。
Tous les paramètres de `apply` doivent être placés dans un tableau et transmis.obj.myFun.apply(db,['Chengdu', ..., 'string' ])。
En plus de renvoyer une fonction, `bind` prend des paramètres de la même manière que `call`.
Bien sûr, les paramètres de ces trois méthodes ne sont pas limités au type `string`. Ils peuvent être de divers types, y compris des fonctions, des objets, etc. !
Adresse d'origine : https://www.cnblogs.com/Shd-Study/p/6560808.html