为什么这个显示空值? var name='abc'; var a={ name:'bbb', sayName:function() { return function() { return this.name; } } } alert(a.sayName()()); //显示为空匿名函数的this一般是指向全局作用域的,为什么显示的不是abc呢?求指点 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 var a={ name:'bbb', sayName:function() { return function() { return this.name; } } }没执行完,就输出了 你用的是什么浏览器才弹出空啊,或许有些新版本的浏览器实现了原来的BUG,那弹出空就对了 没有问题,正常弹出结果"abc";IE9/chrome/firefox 三方浏览器下测试均正常~ 在全局作用域中执行 alert( this.name )this = global输出 'abc' 额,我用的是IE6,要是用高版本浏览器的话,不太好,因为,浏览器越高级,隐藏的BUG就越多,我习惯用低级别的浏览器来测试.. <script type="text/javascript"> var name='abc'; var a={ name:'bbb', sayName:function() { return function() { return this.name; } } } alert(a.sayName()()); //ie8 firefox均正常显示abc</script> 你的this指向的是全局作用域是不错,你的name呢,是全局作用域下的属性么? this应该是指向了window对象了,你的name该写成这样window.name jquery控制div背景求助 棘手问题,请高人帮忙 用Ext的GroupHeaderGrid ,为什么我做的表头老是不合并的 单选,多选框JS验证问题,大家看看,急啊~ javascript 弹新窗口问题! 60分在等,javascript 触发Action的问题!请大家执教! 怎么动态创建一个表格??? 请问如何让文字发送表单? 如何自动关闭下载时打开的窗口 为什么在编辑FRAME里的WORD文档后关闭IE就出错了 window.onload = doIt只是为window注册了一个加载函数,并没有立即执行 初级问题:jquery中的append里面怎样包含变量?
name:'bbb',
sayName:function()
{
return function()
{
return this.name;
}
}
}
没执行完,就输出了
要是用高版本浏览器的话,不太好,
因为,浏览器越高级,隐藏的BUG就越多,我习惯用低级别的浏览器来测试..
<script type="text/javascript"> var name='abc';
var a={
name:'bbb',
sayName:function()
{
return function()
{
return this.name;
}
}
}
alert(a.sayName()()); //ie8 firefox均正常显示abc
</script>