Javascript中的this关键字
2010-09-14 13:23:59 来源:WEB开发网document.getElementById("div1").onclick=function(){doSomething();}
当点击div1时,调用属于window的doSomething函数,所以也是显示“undefined”;
3、通过js来绑定事件,在div2载入过后:
document.getElementById("div2").onclick=doSomething;
当点击div2时,显示“div2”,因为在给div2的onclick赋值,是将doSomething拷贝了一次,这时拷贝的这个函数是属于div2的了,跟属于window的doSomething没有任何关系了。点击div2时,就会触发属于div2的doSomething,这里的this就是指div2。
二、attachEvent和addEventListener
attachEvent是在ie中绑定事件的方法,会将相应函数拷贝到全局(即响应函数的owner为window),但是在DOM标准中,addEventListener绑定的事件时拷贝的响应函数的owner为事件所绑定的对象
functiondoSomething(){
alert(this.id);
alert(this==window);
}
window.onload=function(){
vardiv1=document.getElementById("div1");
if(div1.attachEvent){
div1.attachEvent("onclick",doSomething);
document.body.appendChild(document.createTextNode("attachEvent"));
}elseif(div1.addEventListener){
div1.addEventListener("click",doSomething,false);
document.body.appendChild(document.createTextNode("addEventListener"));
}else{
div.onclick=doSomething;
}
}
Tags:Javascript this 关键字
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接