匿名函数的this指向为什么是window? 本帖最后由 jonzrj 于 2014-02-07 14:38:40 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你的object.getNameFunc()返回了一个匿名函数,然后调用执行这个匿名函数。因为这个匿名函数不是作为某个对象的方法来调用执行,所以它的this就是wlndow对象 功力不足,说不清。不知有没有人说的清。var name = "The Window";var object = { name : "My Object", getNameFunc : function(){ return (function(){ return this.name; }.bind(this)); }}; alert(object.getNameFunc()()); 匿名函数是不是永远不能作为某个对象的方法吗?小白提问,可能问不好。 var name = "The Window"; var object = { name : "My Object", getNameFunc : function(){ return function(){ return this.name; }; } }; var f = object.getNameFunc(); object.z = f; //把匿名函数赋值给对象的方法, alert(object.z()); //再以对象的方法来调用执行 alert(f.call(object)); //或者用call来强行指定对象 要弄明白this,你只需要找到在哪个作用域下执行this就是指向哪个对象你那句拆解后就如下 alert(object.getNameFunc()()); //"The Window" var func = object.getNameFun(); alert(func());//这样看明白了吧 IP验证-正则表达式 请教一个最小的问题 怎么把图片切换效果设置成 横向左右切换 这个判断,用js或jquery改怎么写? 求越狱第四季第12集在线观看地址 内网的服务器中毒了,每个jsp&html。。。都加了一条script 老问题解决后的新提法。 最新动态的效果! 高手们!问题来了,还是有关图片上传时的客户端判断的问题,马上给分。 模拟marquee无缝滚动,怎么动态的添加滚动的内容? 要在这个正则改为@前允许有空格怎么改呢 输入检查 对输入的字符串格式进行判断
因为这个匿名函数不是作为某个对象的方法来调用执行,所以它的this就是wlndow对象
var name = "The Window";var object = {
name : "My Object",
getNameFunc : function(){
return (function(){
return this.name;
}.bind(this));
}
};
alert(object.getNameFunc()());
var object = {
name : "My Object",
getNameFunc : function(){
return function(){
return this.name;
};
}
}; var f = object.getNameFunc();
object.z = f; //把匿名函数赋值给对象的方法,
alert(object.z()); //再以对象的方法来调用执行 alert(f.call(object)); //或者用call来强行指定对象
var func = object.getNameFun();
alert(func());//这样看明白了吧