Metaprogramming in JavaScript
Details
Metadata, data about data, is everywhere. We seem to intrinsically understand that using data to further describe the data within our systems brings numerous benefits to taming complexity. It follows then that metaprogramming, programming that interacts with the program itself by inspecting or even manipulating its own code can bring similar benefits to our software.
ES6 greatly expands upon JavaScript's existing metaprogramming capabilities with the Symbol, Reflect, and Proxy types. Through some practical examples we'll discuss the role each of these types play within JavaScript metaprogramming and see how they not only affect your code but even drive several modern language features.
-----
Dave Fancher is the lead API software engineer at Vibenomics in Fishers, Indiana. He is a 5-time Microsoft MVP, author of The Book of F# from No Starch Press, Pluralsight author, LinkedIn Learning instructor, and international speaker. He has been building software for two decades with an emphasis on Microsoft technologies. Most recently he has been focused on applying functional programming principles to JavaScript for Node.js development. When not writing code or writing about code he enjoys spending time with his family, watching movies, gaming on his Xbox, and dabbling with photography.
