首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

有点没搞懂,请求讲解下,多谢

2013-09-06 
有点没搞懂,请求讲解下,谢谢。var createCallbackfunction(fn,args){return function(){fn.call(window,ar

有点没搞懂,请求讲解下,谢谢。
var createCallback=function(fn,args){
return function(){
fn.call(window,args);  //这点没搞懂
}
}
var fn=function(userName)
{
document.body.innerHTML=userName;

}
//window.setInterval(createCallback(fn,"大漠沙秋"),1000);
[解决办法]
这个例子演了了call方法和函数可以做为参数的编程方式。javascript常常用这种方法传入一个函数,返回一个重新封装过的新函数,很多情况是修改函数的this指针,指向另一个对象。


var createCallback=function(fn,args){
return function(){//返回一个新函数
fn.call(window,args);  //将旧函数的this指向window,并传入参数args
}
}

[解决办法]
call 方法
调用一个对象的一个方法,以另一个对象替换当前对象。

call([thisObj[,arg1[, arg2[,   [,.argN]]]]])

参数
thisObj

可选项。将被用作当前对象的对象。

arg1, arg2,  , argN

可选项。将被传递方法参数序列。

说明
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。

如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。

热点排行