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

江苏省建设工程质量监督网站天元建设集团有限公司中标情况分析

江苏省建设工程质量监督网站,天元建设集团有限公司中标情况分析,工作室起名大全免费取名,商城模板网站相比于使用传统的Object实现补环境框架结构,使用 ES6 的 Class 具有以下优势: 代码维护更方便:Class的语法更简洁直观,方便开发者阅读和维护。组织结构更清晰:Class提供了明确的层次结构,有助于代码的模块…

相比于使用传统的Object实现补环境框架结构,使用 ES6 的 Class 具有以下优势:

  1. 代码维护更方便:Class的语法更简洁直观,方便开发者阅读和维护。
  2. 组织结构更清晰:Class提供了明确的层次结构,有助于代码的模块化管理。
  3. 扩展性更强:Class的继承机制使得扩展功能变得更加容易和自然。
  4. 代码复用率更高:通过继承和方法重用,Class大大提高了代码的复用性。
  5. 继承能力强:Class的继承机制远超传统Object,使得复杂对象的创建和管理更加高效。
  6. 减少重复代码:使用Class避免了传统Object方式中大量重复代码的编写。
  7. 贴近浏览器实现:Class的形式更接近浏览器底层实现,在数据输出上具有特别的优势。

以下是遵循跟浏览器保持一致的 document 继承结构

Object└─ EventTarget└─ Node└─ Element└─ HTMLElement└─ HTMLDivElement└─ ... (其他HTML元素)└─ Document└─ HTMLDocument

以下为框架代码的实现

class EventTarget {// 所有能够监听和触发事件的对象的基类,为 DOM 中的各种元素(如 Node、Element、HTMLElement 等)提供了统一的事件处理接口,使得这些对象可以响应用户交互和其他事件constructor () {this.listeners = {}}addEventListener (type, callback) {if (!this.listeners[type]) {this.listeners[type] = []}this.listeners[type].push(callback)}removeEventListener (type, callback) {if (!this.listeners[type]) returnconst stack = this.listeners[type]for (let i = 0; i < stack.length; i++) {if (stack[i] === callback) {stack.splice(i, 1)return}}}dispatchEvent (event) {if (!this.listeners[event.type]) return trueconst stack = this.listeners[event.type].slice()for (let i = 0; i < stack.length; i++) {stack[i].call(this, event)}return !event.defaultPrevented}
}class Node extends EventTarget {// 提供了基本的树结构操作和与节点相关的功能,所有的 DOM 元素和文本节点等都继承自Nodeconstructor () {super()}
}class Element extends Node {// 这个类里面放的是所有元素的Element类的属性方法和HTMLElement的属性方法,这里将 HTMLElement 的属性方法全部合并到Element中了constructor () {super()}
}class HTMLElement extends Element {constructor () {super()}
}// 一些内置的元素,比如div是来自于HTMLDivElement这个类实例化出来的
class HTMLDivElement extends HTMLElement {constructor () {super()}// 添加特有的属性和方法
}// 一些自定义的元素名,他就会用HTMLUnknownElement这个类实例化出来
class HTMLUnknownElement extends HTMLElement {constructor(tagName) {super()this.tagName = tagName}// 添加特有的属性和方法
}class Document extends Node {constructor () {super()}createElement (tagName) {switch (tagName.toLowerCase()) {case 'div':return new HTMLDivElement()default:return new HTMLUnknownElement(tagName)}}
}class HTMLDocument extends Document {constructor () {super()}
}const document = new HTMLDocument()
console.log(document)
http://www.yayakq.cn/news/858950/

相关文章:

  • jsp电子商务网站建设源码公众号模板网站
  • 优秀网站网页设计论述网站建设的具体步骤有哪些
  • 惠州建设工程交易网站长沙好博网站建设有限公司
  • 华蓥住房和城乡建设厅网站临沂网站建设怎么样
  • 葫芦岛建设信息网站东莞网站开发哪家强
  • 泗洪网站设计公司建e网怎么赚钱
  • wordpress类开源网站wordpress改站点地址
  • 柴油网站怎么做网站建设语言环境
  • php外贸网站制作wordpress价格插件
  • 网站后台文字编辑器怎样自学开网店
  • 帝国cms 网站迁移宜良县建设局网站
  • 湖北省网站建设动漫做美食的视频网站
  • 北京建设网站图片wordpress music pro
  • 四川城乡和建设厅网站首页成品网站设计网站
  • 公司网站建设论文制作表情包的微信小程序
  • 网站建设及优化做qq图片的网站吗
  • 怎样申请个人网站谷歌系平台推广
  • 网站开发与应用 答案外汇平台网站建设
  • 桂林创新大厦网站商会网站建设方案书
  • 网站友情链接有什么用wordpress站外连接
  • 做网站建设小程序北京网站优化公司哪家好
  • 怎么把网站排名到百度前三名编程软件scratch免费下载手机版
  • 网站建设方案模板下载天津做网站
  • 广西建设厅网站绿色建筑标识茶叶网站建设策划方案u001f
  • 做彩票网站电子商务平台的建设
  • google网站提交入口seo网站分析工具
  • 国家建设部投诉网站网站建设工作室
  • 安福县住房和城乡建设局网站不用流量的地图导航软件
  • 怎么样在公司配置服务器做网站互助盘网站怎么做的
  • 沈阳建设银行网站首页html网页模板网站模板下载