第七章:元编程

元编程是针对程序本身的行为进行操作的编程。换句话说,它是为你程序的编程而进行的编程。是的,很拗口,对吧?

例如,如果你为了调查对象a和另一个对象b之间的关系 —— 它们是被[[Prototype]]链接的吗? —— 而使用a.isPrototypeOf(b),这通常称为自省,就是一种形式的元编程。宏(JS中还没有) —— 代码在编译时修改自己 —— 是元编程的另一个明显的例子。使用for..in循环枚举一个对象的键,或者检查一个对象是否是一个“类构造器”的 实例,是另一些常见的元编程任务。

元编程关注以下的一点或几点:代码检视自己,代码修改自己,或者代码修改默认的语言行为而使其他代码受影响。

元编程的目标是利用语言自身的内在能力使你其他部分的代码更具描述性,表现力,和/或灵活性。由于元编程的 的性质,要给它一个更精确的定义有些困难。理解元编程的最佳方法是通过代码来观察它。

ES6在JS已经拥有的东西上,增加了几种新的元编程形式/特性。