js中定义一个function,在该function中使用关键字this时要注意,
如果你定义function是为了将来某个事件调用,那么此时this不可用(严格来说,
this是一个不指代任何节点的对象,相当于java中的new Object(),不为null),
因为它不知道this指代哪个对象,所以这种情况下,我们一般给function定义一个
形式参数,然后谁调用谁传入实参-this。
但是,有一种情况要注意,如果使用匿名function,如下形式:
input.onclick=function(){......},
或者使用js框架,譬如jQuery:
$(input).bind("click",function(){});
$(input).click(function(){......});//简化形式
$(input).live("click",function(){......});//委托形式
......
在这些匿名函数里面,可以直接使用this,因为它知道this指代谁。
网友评论