元编程是什么

过去常常听说元编程,但是一直不要清楚它是什么意思,这篇文章简单介绍下自己查到的相关知识

元编程

编程(program)是指编写代码去实现某些功能,而元编程(metaprogram)则是指以其他程序为数据,扩展程序/语言的特性的程序的编写,在一般情况下就是通过编程让一个语言获得它本身没有的一些编程特性,或者一个程序可以在运行中修改自身的

javascript简单的元编程例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class A{
constructor(){
if(new.target === A){
this.x = 1
this.y = 1
} else {
this.z = 2
}
}
}

class B extends A{
constructor(){
super()
}
}

let a = new A()
let b = new B()

console.log(JSON.stringify(a))
console.log(JSON.stringify(b))

在这个例子中,使用new.target的方式来根据不同的情况进行了初始化,实现了A类在程序运行中在不同情况下的不同实例化能力,看似底层相同,其实不一样

参考文献

Javascript元编程
百度百科_元编程
MDN_new.target

END

2018-10-30 立项

2018-10-29 立项