这个问题在这里已有答案:
在onInit
应用程序中控制器的SAPUI5
函数的某些部分,有一个自动生成的代码,如下所示:
this.getView().addEventDelegate({
onBeforeFirstShow: function() {
// Some codes
}.bind(this)
});
现在我的问题是.bind(this)
是什么意思?它有什么作用?它是纯JavaScript代码还是与SAPUI5相关?
它将函数的监听器绑定到当前类,然后当你在this
函数中使用onBeforeFirstShow
指针时,this
指针引用封装类,你可以访问它的成员。
是的,它是纯粹的javascript代码,你可以了解更多关于什么绑定和here
bind()方法创建一个新函数,在调用时,将其this关键字设置为提供的值,并在调用新函数时提供任何前面提供的给定参数序列。
在这种情况下,它所做的基本上是将当前的this
绑定到该函数,所以当调用onBeforeFirstShow
时,该函数内的this
将被传递给bind
函数。
您可能还想查看ES6中的新箭头函数语法,它会自动绑定当前的this
,因此不需要bind(this)
。
bind()
方法创建一个新函数,在调用时,将其this关键字设置为提供的值,并在调用新函数时提供任何前面提供的给定参数序列。
句法
fun.bind(thisArg [,arg1 [,arg2 [,...]]])