`bind(this)是什么意思?

Mah*_*ari 9 javascript sapui5

在应用程序中onInit控制器功能的某些部分,SAPUI5有一个自动生成的代码,如下所示:

    this.getView().addEventDelegate({
            onBeforeFirstShow: function() {
                // Some codes
            }.bind(this)
        });
Run Code Online (Sandbox Code Playgroud)

现在我的问题是什么.bind(this)意思?它有什么作用?它是纯JavaScript代码还是与SAPUI5相关?

小智 7

它将函数的侦听器绑定到当前类,然后当您thisonBeforeFirstShow函数内部使用指针时,this指针指向封装的类,您可以访问其成员。


Tia*_*gel 6

是的,它是纯JavaScript代码,您可以在此处了解更多关于绑定的信息

bind()方法创建一个新函数,该函数在被调用时将其关键字设置为提供的值,并在调用新函数时提供给定的参数序列。

在这种情况下,它所做的基本上是将电流绑定this到该函数,因此在onBeforeFirstShow调用该函数时,该this函数内部将是传递给该bind函数的那个函数。

您可能还需要查看ES6中的新箭头函数语法,它会自动绑定当前的箭头,this因此bind(this)没有必要。