BaSaRa 目前关心的是UI技术

关于javascript中的this...

看了zkybeyond的BLOG里的一篇留言,有这么一段代码:

var myObj=new Object();
myObj.message="hello world";
myObj.fun=function(){
alert (this.message);

}

window.onload=myObj.fun;

页面打开时显示什么?hello world?

不对,是undefined!!
 
晕不晕?反正当我真正开始在js中运用OO概念进行编程的时候发现,this所指代的对象竟然和直觉不一致。后来查资料知道,在html事件响应函数中的this都会被替换成触发事件的那个Element!!(这种说法不太严谨,不过意思可以理解,,嘻嘻)所以window.onload的时候调用的fun已经不是myObj的fun了。 

 改一下代码:
<script language="JavaScript">
<!--
var myObj= {};
myObj.message="hello world";
myObj.fun=function(){
 alert (this.fun);
}
window.fun = "test";
window.onload=myObj.fun;
//-->
</script>

。。。有点晕吧

posted on 2006-05-30 16:37 BaSaRa 阅读(385) 评论(0)  编辑  收藏 所属分类: Javascript


只有注册用户登录后才能发表评论。


网站导航:
 

My Links

Blog Stats

常用链接

留言簿(1)

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜