Javascript中的this关键字
2010-09-14 13:23:59 来源:WEB开发网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();
Tags:Javascript this 关键字
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接