js1.5的类的实现机制

在javascript1.5和其以前版本都是基于对象的,也就是说几乎任何东西(除了一些基本数据类型外)都可以看成是对象,包括函数。而用函数表现出来的“类模板”,并用objname=new funcname(val)语句来构造一个“类实例”的方法其实都是基于对象的模拟操作,并没什么真的类似于静态语言中那样的类机制。在js中,其实只要构造出新的对象都离不开objname=new Object().

function vClass(val)
        {
              this.attr=val;
        }
vClass.prototype.meth=function()
             {
                 alert(this.attr);
              }

然后构造对象并调用其方法
vobj=new vClass("hello world");
vobj.meth();

以上代码等同于

vobj=new Object()
vobj.constructor=vClass; //类模板其实等同于对象的一个方法用于扩展自身属性或方法
vobj.prototype=vobj.constructor.prototype; //和类模板的基对象建立关联
vobj.constructor("hello world"); //扩展vobj对象的属性或方法,因为是基于vobj调用,this就是vobj
vobj.meth();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值