当前位置: 首页 > news >正文

【ES6】Proxy的高级用法,实现一个生成各种 DOM 节点的通用函数dom

下面的例子则是利用get拦截,实现一个生成各种 DOM 节点的通用函数dom。

<body>
</body><script>const dom = new Proxy({}, {get(target, property) {return function(attrs = {}, ...children) {const el = document.createElement(property);for (let prop of Object.keys(attrs)) {el.setAttribute(prop, attrs[prop]);}for (let child of children) {if (typeof child === 'string') {child = document.createTextNode(child);}el.appendChild(child);}return el;}}
});const el = dom.div({},'Hi, my name is ',dom.a({href: 'https://blog.csdn.net/qq_22744093?type=blog'}, 'kexuexiong'),'. I like:',dom.ul({},dom.li({}, 'The web'),dom.li({}, 'Food'),dom.li({}, '…actually that\'s it'))
);document.body.appendChild(el);</script>

输出结果:
在这里插入图片描述

http://www.lryc.cn/news/154821.html

相关文章:

  • 气象站是什么设备?功能是什么?
  • 227. 基本计算器 II Python
  • python中字典常用函数
  • leetcode88合并两个有序数组
  • Ceph入门到精通-Nginx 大量请求 延迟优化
  • Vulnstack----5、ATTCK红队评估实战靶场五
  • QT 5.8
  • AIGC+思维导图:提升你的学习与工作效率的「神器」
  • javaScript:DOM元素的获取(静态/动态获取)
  • 数据结构前言
  • Docker基于alpine带glibc的小型容器image
  • Nginx教程
  • 直播预约|哪吒汽车岳文强:OEM和Tier1如何有效对接网络安全需求
  • hiveserver2经常挂断的原因
  • openeuler 23.03 安装mysql 8.X
  • 网络安全—0基础学习笔记(黑客)
  • react HashRouter 与 BrowserRouter 的区别及使用场景
  • 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.3)- 串行NOR Flash下载算法(J-Link工具篇)
  • 多目标应用:基于多目标向日葵优化算法(MOSFO)的微电网多目标优化调度MATLAB
  • 智能安全科技,Vatee万腾为您服务
  • Scala中的类型检查和转换,以及泛型,scala泛型的协变和逆变
  • 【数据结构】C语言队列(详解)
  • 【数据结构初阶】一. 复杂度讲解
  • Jmete+Grafana+Prometheus+Influxdb+Nginx+Docker架构搭建压测体系/监控体系/实时压测数据展示平台+遇到问题总结
  • php提交表单将html相互字符转化的封装函数
  • 7 Series FPGAs GTX/GTH Transceivers
  • iOS系统下轻松构建自动化数据收集流程
  • Android基础之Activity生命周期
  • Golang 程序漏洞检测利器 govulncheck(一):安装和使用方法
  • 强化学习算法总结 2