Fdream's Blog
专注于WEB前端开发
Powered by Google

难以理解的JavaScript变量作用域

17 多云 2008-9
Fdream 发表于 Ajax Web, 已被阅读 530 次, 评论 2 条
关键词:javascript
[ 阅读字体大小: ]

在一个iframe中,有这样一段js:

参考代码: [复制代码] [保存代码]

var clear_btn = parent.document.getElementById('clearbtn');
clear_btn.onclick = function () {
    //...
    PSearch.clearResult(); // PSearch这个对象在该页面引用的js文件中,全局变量
    //...
};

当在我的IE 7下的时候居然会out of memory,而在clearResult中并没有干任何事情!在IE 8下的时候,却是找不到PSearch,很诡异……突然想起曾经碰到过类似的问题,于是改成这样:

参考代码: [复制代码] [保存代码]

var clear_btn = parent.document.getElementById('clearbtn');
var ps = PSearch; // PSearch这个对象在该页面引用的js文件中,全局变量
clear_btn.onclick = function () {
    //...
    ps.clearResult();
    //...
};

这下就跑得很好了,一点问题没有……很莫名奇妙……

Related articles 您可能对这些文章也感兴趣:
Related comments 与该文相关的评论:(我也想说几句)
引用这个评论  Fdream 于 9/18/2008 1:07:02 PM 发表评论: 

后面那个写法只是多写了一个引用而已,并没有什么特别的意义,很诡异……

后面那个写法只是多写了一个引用而已,并没有什么特别的意义,很诡异……
引用这个评论  rukey67 于 9/18/2008 10:15:06 AM 发表评论: 

闭包传值问题吧

闭包传值问题吧
Add a comment 我来说两句: 
禁止表情
禁止UBB
禁止图片
识别链接
识别关键字
表  情
arrow
用户名:   密码:  (匿名可不写) 同时注册?
验证码:   看不清?换个图片  看不清楚?换个图片

 
Copyright © 2005-2008,Fdream All Rights Reserved
Processed in 0.156252 second(s) , unknow queries
Powered by OWord V0.1, Even Not Alpha
(此博客程序为半成品,请勿索取,以免给您的心灵造成创伤^_^)
鄂ICP备05026031号