壹.3.3 JavaScript元编程:Proxy与Reflect

01.什么是元编程

元编程(Metaprogramming)是指某类计算机程序的编写,这类计算机程序编写或者操纵其他程序(或者自身)作为它们的数据,或者在运行时完成部分本应在编译时完成的工作。很多情况下与手工编写全部代码相比,元编程的工作效率更高。

编写元程序的语言称之为元语言,被操作的语言称之为目标语言。

一门语言同时也是自身的元语言的能力称之为反射

以上是百度百科的定义。

这么说的话,常见的eval是实实在在的元编程了。

let str = `(function hello(){
console.log('hello');
})()`;
eval(str);//>> hello

如上代码,eval可以编写计算机程序从而动态生成一段程序,实现用程序造程序,这就是元编程

而如果是程序具备自己造自己的能力,那么这门程序语言就具备反射的能力。上面的JavaScript就是自己造自己:通过输入一段JavaScript字符串,造出一段新的JavaScript函数,因此JavaScript具备反射的能力。

02.Proxy

03.Reflect