Javascript中的this关键字
2010-09-14 13:23:59 来源:WEB开发网对于函数doSomething
functiondoSomething(){
alert(this.id);
alert(this==window);
}
1、使用attachEvent绑定到div1的click事件上,doSometing会被复制到window,这时doSomething里面的this指的是window,点击div1时会显示“undefined”和“true”
2、使用addEventListener绑定div1的click事件,这时将doSomething拷贝,这个拷贝过后的函数是属于div1的,所以点击div1时会显示“div1”和“false”
注:http://www.quirksmode.org/js/this.html里认为attachEvent只是使用了函数的引用,看如下代码:
varobj=newObject();
obj.color="black";
obj.showColor=function(){
alert(this.color);
alert(this==window);
}
obj.showColor();
vardiv1=document.getElementById("div1");
div1.attachEvent("onclick",obj.showColor);
此时点击div1的时候,会显示“undefined”和“true”,如果attachEvent仅仅是引用obj.showColor的话,那么this还是应该指的是obj,但是实际上这里this指的是window,所以我认为这里不是引用,而是拷贝到全局的。
三、关于对象冒充的继承方式
1、new与不new的区别
对于如下function
functionClassA(sColor){
this.color=sColor;
this.sayColor=function(){
alert(this.color);
}
}
这是一个类还是一个函数?随你而定!
如果你认为这是一个函数,那么我们可以这样来调用它:
Tags:Javascript this 关键字
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接