`bind(this)是什么意思? [重复]

问题描述 投票:7回答:3

这个问题在这里已有答案:

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

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

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

javascript sapui5
3个回答
4
投票

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


5
投票

是的,它是纯粹的javascript代码,你可以了解更多关于什么绑定和here

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

在这种情况下,它所做的基本上是将当前的this绑定到该函数,所以当调用onBeforeFirstShow时,该函数内的this将被传递给bind函数。

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


1
投票

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

句法

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

参考Mozilla Developer Network

© www.soinside.com 2019 - 2024. All rights reserved.