web-dev-qa-db-fra.com

Que signifie `bind (this)`?

Dans certaines parties de la fonction onInit d'un contrôleur dans une application SAPUI5, il existe un code généré automatiquement, comme celui-ci:

    this.getView().addEventDelegate({
            onBeforeFirstShow: function() {
                // Some codes
            }.bind(this)
        });

Ma question est la suivante: que signifie .bind(this)? Qu'est ce que ça fait? Est-ce un code JavaScript pur ou est-il lié à SAPUI5?

6
Mahdi J.Ansari

Il lie l'écouteur de la fonction à la classe actuelle. Lorsque vous utilisez le pointeur this à l'intérieur de la fonction onBeforeFirstShow, le pointeur this fait référence à la classe encapsulée et vous permet d'accéder à ses membres.

3
user7383443

Oui, c'est du code javascript pur, vous pouvez en apprendre plus sur ce que bind est et fait ici

La méthode bind () crée une nouvelle fonction qui, lorsqu'elle est appelée, a pour mot clé this la valeur fournie, avec une séquence d'arguments donnée précédant tout ce qui est fourni lors de l'appel de la nouvelle fonction.

Dans ce cas, il lie fondamentalement la this actuelle à cette fonction. Ainsi, lorsque onBeforeFirstShow est appelé, la this de cette fonction sera celle transmise à la fonction bind.

Vous pouvez également consulter la nouvelle syntaxe de la fonction de flèche dans ES6: elle lie automatiquement la variable this actuelle, de sorte que bind(this) n'est pas nécessaire.

4
Tiago Henrique Engel

La méthode bind() crée une nouvelle fonction qui, lorsqu'elle est appelée, a pour mot clé this la valeur fournie, avec une séquence d'arguments donnée précédant tout ce qui est fourni lorsque la nouvelle fonction est appelée.

Syntaxe

fun.bind (thisArg [ arg1 [ arg2 [ ...]]])

Référence àRéseau de développeurs Mozilla

0
cnbandicoot