Javascript之面向对象编程--类的实现(1)

/************************************
*Author:Java619
*Time:2007-01-25
*************************************/

Javascript可以使用function 关键字来定义一个类.在函数内通过this指针引
用的变量或方法都会成为类的成员,例如:

function  Person(name) {
  
var tmp="abc";
  
this.name=name;
  
this.sayHello=function(){
     alert(
"你好!"+this.name);
  }

}

 上面定义了一个Person类,它具有name属性,sayHello方法,它的所的实例都将含有
这两个成员,而tmp就不是它的成员.定义后可以用new关键字建立其实例
var p1=new Person("ceun");
现在就可以通过p1.sayHello()来调用sayHello方法了
我们来看下使用new创建对象的过程:
(1)当解释器遇到new操作符时便创建一个空对象;
(2)开始运行Person这个函数,并将其中的this指针都指向这个新建的对象;
(3)因为给对象不存在的属性赋值时,解释器就会为对象创建该属性,例如上例Person中,
当运行到this.name=name;这条语句时就会添加一个name属性,并把变量值赋给它,这样函
数执行就是初始化这个对象的过程,即实现构造函数的作用;
(4)当函数执行完后,new操作符就返回初始化后和对象.

通过这个过程Javascript中实现了面对对象的基本机制.由此可见,在Javascript中,function
的定义实际上就是实现一个对象构造器,是通过函数来完成的.这种方式的缺点是:
(a).将所有的初始化语句,成员定义都放到一起,代码逻辑不够清晰,不易实现复杂的功能.
(b).每创建一个对象的实例,都要执行一次构造函数.构造函数中定义的属性和方法总是会被
重复的创建,例如上例中的Person类,每创建一个它的实例,sayHello方法都会被创建一次,造成
内存的浪费.(下一节,将介绍另一种类的定义机制:利用prototype对象)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值