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

Javascript中的this关键字

 2010-09-14 13:23:59 来源:WEB开发网   
核心提示: ClassA("red");“red”是传递的一个参数,ClassA中的this指的是当然就是指的window了,Javascript中的this关键字(4),所以现在window有了color属性和sayColor方法,并且color有&ldq

ClassA("red");

“red”是传递的一个参数,ClassA中的this指的是当然就是指的window了,所以现在window有了color属性和sayColor方法,并且color有“red”这个值。

这是调用sayColor或者window.sayColor都可以显示“red”;

window.sayColor();

如果你认为这是一个类,那么我们应该这样使用它:

varobj=newClassA("red");

new这个关键词的出现让上面这一句代码增加了不少内容:首先,创建一个Object实例,然后,将ClassA中的this指向创建的这个Object中,最后返回这个Object,所以返回的这个Object就赋值给了obj。所以我们可以说this指向的是obj,obj拥有了color属性和sayColor方法,并且color属性值为“red”。

2、函数的owener

functionshowId(){
  alert(this.id);
}
window.onload=function(){
  vardiv1=document.getElementById("div1");
  div1.onclick=showId;
  div1.show=showId;
  div1.show();
  
  varobj=newObject();
  obj.id="obj";
  obj.show=showId;
  obj.show();
}

我们可以将showId这个函数赋值给click事件,也可以赋值给任何一个对象的任何一个属性,这是也会拷贝showId这个方法的,所以我们在调用div1.show方法时,this是指向div1的,在调用obj.show时,this指向的是obj的。

3、对象冒充的原理

下面的代码是通过对象冒充方法实现的继承

functionClassA(sColor){
  this.color=sColor;
  this.sayColor=function(){
    alert(this.color);
  }
}
functionClassB(sColor,sName){
  this.newMethod=ClassA;
  this.newMethod(sColor);
  deletethis.newMethod;
  
  this.name=sName;
  this.sayName=function(){
    alert(this.name);
  }
}
varobjB=newClassB("colorofobjB","nameofobjB");
objB.sayColor();

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

Tags:Javascript this 关键字

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