Javascript - 如何为函数设置'this'变量

时间:2010-07-13 15:55:53

标签: javascript

我有一个带回调函数的函数。如何设置回调函数的'this'变量?

例如

function(fn){
    //do some stuff
    fn(); //call fn, but the 'this' var is set to window
    //, how do I set it to something else
}

4 个答案:

答案 0 :(得分:13)

您可以使用call

在对象的上下文中执行函数
fn.call( obj, 'param' )

还有apply

唯一不同的是提供参数的语法。

答案 1 :(得分:2)

您可以使用apply()call()。

允许您执行一个函数,选择函数内部thisApply将函数的参数作为数组,而call允许您单独指定它们。

答案 2 :(得分:2)

funct.call(objThatWillBeThis, arg1, ..., argN);

funct.apply(objThatWillBeThis, arrayOfArgs);

答案 3 :(得分:2)

您可以使用.call()或.apply()。根据您的要求。 Here是关于他们的文章。

基本上你想要:

function(fn){
    //do some stuff
    fn.call( whateverToSetThisTo ); //call fn, 

}