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

外贸网站翻译建设网站开发完成后如何发布

外贸网站翻译建设,网站开发完成后如何发布,在家做网站设计,四川住房建设部网站TypeScript 混入(Mixins) 混入#xff08;Mixins#xff09;是面向对象编程中的一个比较重要的概念。本节将会通过一个实例逐步介绍混入是如何在 TypeScript 中使用的。 1. 解释 在 TypeScript 中#xff0c;可以根据不同的功能定义多个可复用的类#xff0c;它们将作为 …TypeScript 混入(Mixins) 混入Mixins是面向对象编程中的一个比较重要的概念。本节将会通过一个实例逐步介绍混入是如何在 TypeScript 中使用的。 1. 解释 在 TypeScript 中可以根据不同的功能定义多个可复用的类它们将作为 mixins。因为 extends 只支持继承一个父类我们可以通过 implements 来连接多个 mixins并且使用原型链连接子类的方法和父类的方法。 这就像组件拼合一样由一堆细粒度的 mixins 快速搭建起一个功能强大的类。 2. 简单的对象混入 先来看一个基础例子 let target { a: 1, b: 1 } let source1 { a: 2, c: 3 } let source2 { b: 2, d: 4 }Object.assign(target, source1, source2)console.log(target) // { a: 2, b: 2, c: 3, d: 4 }解释 通过 Object.assign() 将 source1 与 source2 混入到 target 上并且替换了 target 对象原有的属性值。 3. TypeScript Mixins 先介绍一个前置知识 Object.getOwnPropertyNames() 方法返回一个由指定对象的所有自身属性的属性名包括不可枚举属性但不包括Symbol值作为名称的属性组成的数组。 3.1 代码演示 下面的代码演示了如何在 TypeScript 中使用混入 // Disposable Mixin class Disposable {isDisposed!: booleandispose() {this.isDisposed true} }// Activatable Mixin class Activatable {isActive!: boolean;activate() {this.isActive true}deactivate() {this.isActive false} }class SmartObject{constructor() {setInterval(() console.log(this.isActive : this.isDisposed), 500)}interact() {this.activate()}// DisposableisDisposed: boolean falsedispose!: () void// ActivatableisActive: boolean falseactivate!: () voiddeactivate!: () void } applyMixins(SmartObject, [Disposable, Activatable])let smartObj new SmartObject() setTimeout(() smartObj.interact(), 2000)function applyMixins(derivedCtor: any, baseCtors: any[]) {baseCtors.forEach(baseCtor {Object.getOwnPropertyNames(baseCtor.prototype).forEach(name {derivedCtor.prototype[name] baseCtor.prototype[name]})}) }3.2 逐步解析这个例子 代码里首先定义了两个类它们将做为 mixins。可以看到每个类都只定义了一个特定的行为或功能。稍后我们使用它们来创建一个新类同时具有这两种功能。 // Disposable Mixin class Disposable {isDisposed!: booleandispose() {this.isDisposed true} }// Activatable Mixin class Activatable {isActive!: booleanactivate() {this.isActive true}deactivate() {this.isActive false} }下面使用 implements 连接多个父类需要在子类里实现所有接口定义。 class SmartObject implements Disposable, Activatable {}这么做是为将要 mixin 进来的属性/方法创建出占位属性。这告诉编译器这些成员在运行时是可用的这样就能使用 mixin 带来的便利虽说需要提前定义一些占位属性。 // DisposableisDisposed: boolean falsedispose!: () void// ActivatableisActive: boolean falseactivate!: () voiddeactivate!: () void子类对外暴露一个封装后的 public 方法方法的具体实现可以借助混入的 mixins 类中的属性/方法: interact() {this.activate()}最后把 mixins 混入定义的类完成全部实现部分。 applyMixins(SmartObject, [Disposable, Activatable])applyMixins() 方法借助 Object.getOwnPropertyNames() 遍历 mixins 上的所有属性并复制到目标上去把之前的占位属性替换成真正的实现代码。 function applyMixins(derivedCtor: any, baseCtors: any[]) {baseCtors.forEach(baseCtor {Object.getOwnPropertyNames(baseCtor.prototype).forEach(name {derivedCtor.prototype[name] baseCtor.prototype[name]})}) }applyMixins() 这个工具函数可以封装在项目中一个核心函数库中。 4. 小结 混入这种思想在一些开源项目如 material、vue-class-component 中被广泛使用我们日常工作中也可以根据需求借鉴使用。
http://www.dnsts.com.cn/news/8561.html

相关文章:

  • 高端网站制作网站设计开发商和承建商的区别
  • 免费建站系统有哪些龙岩kk人才网招聘
  • 保定seo建站网站程序语言那个好
  • 做网站网站的网站建设与管理专业好吗
  • 民族建设集团有限公司官方网站备案网站怎么做
  • 网站建设现在主要做些什么网站建设目的与意义
  • 做二手网站赚钱不个人网站制作多少钱
  • 中小企业建站服务免费稳定的云服务器
  • c 做网站时字体颜色的代码wordpress带个人充值中心
  • 京东网站是自己做的吗域名邮箱登录入口
  • 企业做年度公示在哪个网站aws ec2安装wordpress
  • 阿里云服务器开源做几个网站国外一个专门做配乐的网站
  • 企业模式网站列表管理器网页制作与设计项目策划书
  • 做教育的网站有哪些广州免费建站推荐
  • 企业网站首页html模板乌海网站seo
  • 建设网站设计公司郑州易站通网站公司
  • php网站开发什么松江品划做网站
  • php 上传移动到网站根目录有关网站开发的国外书籍
  • 如何建设公司网站信息赣州景文网络科技有限公司
  • 网站建设代码流程乐山网站建设
  • 做网站的外包能学到什么国外的素材网站
  • 网站什么时候备案成都小程序开发一个多少钱啊
  • 瓯北网站制作系统论建设工程施工合同
  • 重庆南岸营销型网站建设公司哪家专业做网站点击率赚钱
  • h5模版网站天津网站建设培训学校
  • 上海网站建设百家号贸易公司 网站 扶持
  • 网站模板文件下载网站建设是不是都需要交费
  • 网站建设和管理是教什么科目wordpress 开发版 视频教程
  • 网站域名实名认证网站设计怎么边加载变查看
  • 做非法集资资讯的网站网站建设的网站定位