元编程的应用
来源:互联网 发布:linux查看jdk版本命令 编辑:程序博客网 时间:2024/05/02 05:56
元编程的应用
下面通过几个实例来帮助理解元编程思想。
(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客户端开发》作者 涂传滨,杨先亭 等推荐
- 元编程的应用
- C++11模版元编程的应用
- Java 元编程及其应用
- Groovy元编程MOP(ExpandoMetaClass:EMC)的应用场景
- 友元的应用
- 元编程的胡思乱想
- 友元函数的应用
- 模板元编程的好处
- 一个元编程的例子
- 基本的模板元编程
- PHP的元语言编程
- 元编程(metaprogrammming)的艺术:元编程介绍
- 泛型编程\元编程的概念
- C++自动化(模板元)编程基础与应用
- 类的友元函数的应用
- 元编程
- 元编程
- 元编程
- 连接数据库字符串
- 宅男就是要懂自己修笔记本
- ajax资源大全
- 一个口号曾让我摔得很惨
- 面试时可以放松,但更要认真——大学生求职七大昏招衍生系列(4)
- 元编程的应用
- 我是一只小小鸟
- 开博篇!
- 阶乘
- 如何制作ICO图片
- C#操作Excel数据导入(不安装EXCEL的情况)
- c#修饰符
- 把企业玩死的七种方法
- 成为Java高手的25个学习要点