WEB开发网
开发学院网页设计JavaScript Javascript中的this关键字 阅读

Javascript中的this关键字

 2010-09-14 13:23:59 来源:WEB开发网   
核心提示: 对于函数doSomethingfunctiondoSomething(){alert(this.id);alert(this==window);}1、使用attachEvent绑定到div1的click事件上,doSometing会被复制到window,Javascript中的this关键

对于函数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);
  }
}

这是一个类还是一个函数?随你而定!

如果你认为这是一个函数,那么我们可以这样来调用它:

上一页  1 2 3 4 5 6 7  下一页

Tags:Javascript this 关键字

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接