在这里分享一下我对JScript的面对象编程的一些认识和一点解决方案。JScript和JavaScript差不多(当然有所不同),但本文中讲到的内容也可用于JavaScript
JScript支持面对象的一些属性,但他的this指针很奇怪,当有一个对象obj1中的一个成员函数用到this,如果有别一个对象obj2引用该函数,那这个this指向的不是obj1,而是obj2。
下面我们来看一个例子:
<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>无标题文档</title></head>
<body>
<p id="text">this is the element "p"</p>
<script language="jscript">
function obj1(){ //类obj1
this.innerText = "this is obj1";
}
function obj1.prototype.fun(){
alert(this.innerText);
}
var o1 = new obj1; //对象o1
o1.fun(); //显示“this is obj1”
text.onclick = o1.fun; //把对象o1的成员函数绑定到HTML元素text中,这是再点击“this is the element “p”。你会发现显示的是this is the element “p”,而不是this is obj1。
</script>
</body></html>
从上面的例子中我们可以知道JScrpt中函数引用只是引用了函数的入口,并没有保存对象的引用。而this只是简单的指向调用函数的对象而已。JScript并无对象指针这种东西(可能我不知道,如果看文章的您知道的话,请告诉我
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




