java元编程_元编程的应用

元编程的应用

下面通过几个实例来帮助理解元编程思想。

(1)根据现有的对象构造生成新的构造方法,使新对象构造的实例比原对象构造实例拥有更丰富的表现力。如:

function createConstructor(fn)

{

var p= fn.prototype;

function func(){}

//保持原有fn的prototype chain

func.prototype = p;

//保持对象构造信息的正确性

func.prototype.constructor = p. constructor;

//定义新对象构造

func.prototype.a="a";

func.prototype.b="a";

func.prototype.ma=function(){};

//返回新的对象构造

return func

}

当某种类型对象都具有一定的共同点时,即可采用以上代码创建该类型的对象实例。这种创建方式的实质就是原型链(Prototype Chain,参见下一章“JavaScript运行机制”)。

(2)对原function的扩展,并且这些扩展不会影响原function本身的语法结构及功能。如:

function createFunc (fn)

{

//原fn引用

var f =  fn;

//定义构造新功能的信息

function func()

{

//dosomething为 fn扩展的功能代码

return f.apply(this,arguments);

}

//保持原有fn的prototype chain

func.prototype = fn.prototype

//返回新的func

return func

}

如上述代码所示,createFunc将返回一个新的funcion。createFunc的入参是一个function,在createFunc内利用变量f保存对这个function的引用,接着定义了一个新的funcion——func。func有双重作用:

    原封不动地执行f所指向的原函数。

    在func内可以嵌入想要的代码逻辑,如打印日志等。尤为神奇的是,对func内部所附加代码的添加删除并不影响原function的执行逻辑。

在JavaScript中实践元编程的思想,有着各种不同的实现方式。元编程可以理解为一种编程模式而不是具体的编程手段。

本文由《征服RIA:基于JavaScript的Web客户端开发》作者 涂传滨,杨先亭 等推荐

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值