`bind(this)是什么意思?

时间:2017-02-20 12:14:58

标签: javascript sapui5

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

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

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

3 个答案:

答案 0 :(得分:4)

是的,它是纯粹的javascript代码,您可以详细了解绑定是什么和here

  

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

在这种情况下,它所做的基本上是将当前this绑定到该函数,因此当调用onBeforeFirstShow时,该函数内的this将是传递给bind的函数。 {1}}功能。

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

答案 1 :(得分:3)

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

答案 2 :(得分:0)

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

<强>语法

  

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

参考 Mozilla Developer Network