JavaScript的写类方式(3)——转

本文介绍了一种使用构造函数和原型对象来定义类的方法,并展示了如何通过这种方式创建多个具有相同构造函数但不同类型的类。

转自:http://www.cnblogs.com/snandy/archive/2011/03/06/1972264.html

 

续上篇,

构造函数+原型 组装一个类;同一构造函数可以定义出多个类型

01/**
02 * $class 写类工具函数之二
03 * @param {Function} constructor
04 * @param {Object} prototype
05 */
06function $class(constructor,prototype) {
07    var c = constructor || function(){};
08    var p = prototype || {};    
09    return function() {
10        for(var atr in p) {
11            arguments.callee.prototype[atr] = p[atr];
12        }           
13        c.apply(this,arguments);
14    }
15}

与上一篇方式类似,仍然用构造函数,原型对象,定义两个类。 

01//构造函数
02function Person(name) {
03    this.name = name;
04}
05//原型对象
06var proto = {
07    getName : function(){return this.name},
08    setName : function(name){this.name = name;} 
09}
10//写两个类
11var Man = $class(Person,proto);
12var Woman = $class(Person,proto);

与上一篇不同的是,虽然Man和Woman都是用Person,proto组装的。但Man却不等于Woman。即同一个构造函数(Person)可以定义出不同的类。

1// 同一个构造函数(Person)定义不同的类
2console.log(Man == Woman); //false

 

转载于:https://www.cnblogs.com/beijia/archive/2011/11/08/js_oo.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值