浅谈es6中的元编程
短视频,自媒体,达人种草一站服务 这篇文章主要介绍了浅谈es6中的元编程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 何为元编程? 「编写能改变语言语法特性或者运行时特性的程序」。换言之,一种语言本来做不到的事情,通过你编程来修改它,使得它可以做到了,这就是元编程。 meta-programming元编程中的 元 的概念可以理解为 程序 本身。”元编程能让你拥有可以扩展程序自身能力 举个例子: if (a == 1 && a == 2 && a == 3) { 怎样才能让这个条件满足,输出done。按照正常的逻辑是无法完成的,毕竟一个值不可能同时满足等于1、2、3这是就可以用到元编程来改变这个不可能 let a = { if (a == 1 && a == 2 && a == 3) { Symbol.toPrimitive在对象转换为原始值的时候会被调用,初始值为1,调用一次+1,就可以满足a == 1 && a == 2 && a == 3,同时Symbol.toPrimitive也可以接受一个参数hint,hint的取值为number、string、default let obj = { 还有哪些元编程? proxy es5的Object.defineProperty()方法的es6升级版,用于自定义的对象的行为 let leon = { reflect-metadata 你可以通过装饰器来给类添加一些自定义的信息。然后通过反射将这些信息提取出来。当然你也可以通过反射来添加这些信息 require("reflect-metadata") let metadataValue = Reflect.getMetadata("name", C.prototype, "method"); 应用 拓展数组索引访问 负索引访问,使array[-N] 与 array[array.length - N] 相同 let array = [1, 2, 3]; array = new Proxy(array, {
数据劫持 let handlers = Symbol('handlers'); function makeObservable(target) { // 存储 handler 函数到数组中以便于未来调用 // 创建代理以处理更改 let user = {}; user = makeObservable(user); user.observe((key, value) => { user.name = "John"; 到此这篇关于浅谈es6中的元编程的文章就介绍到这了,更多相关es6 元编程内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! (编辑:ASP站长) 【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。 |
-
无相关信息