Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1102434
  • 博文数量: 1310
  • 博客积分: 3980
  • 博客等级: 中校
  • 技术积分: 8005
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-09 22:05
文章分类

全部博文(1310)

文章存档

2011年(1)

2008年(1309)

我的朋友

分类:

2008-11-09 17:42:10



以前总感觉有些问题,但一直不知道到底是怎么回事,现在终于明白了,原来将一个函数赋给一个对象的属性或方法分两种情况:

1,如果函数没有参数,可以直接将名字赋给其属性或方法。
如document.onmouseover=doIt;//注意doIt不要带括号
这样赋值的实质是将后面函数的内容赋给前面对象属性或方法,等该属性或方法执行时执行后面函数的内容。
但是如果用document.onmouseover=doIt(id);将会出现问题,实质上并没有赋给document.onmouseover,js在解析此行时直接执行了doIt(id)函数,然后将doIt(id)的执行结果赋给document.onmouseover。
又如window.onload=getStart(id);并不会等页面加载完成后才执行getStart函数,而是网页加载到这行代码时就立即执行了getStart,然后将返回结果赋给window.onload。

2,如果要将带有参数的函数赋给其属性或方法则应该用function(){}包含起来。
如:
document.onmouseover=function(){doIt(id)};
window.onload=function(){getStart()};
这样就能将getStart的内容传给前面的对象属性了。



Yemoo'S JS Blog 2007-01-26 00:44 发表评论
阅读(337) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~