将class转换为function

class Example {
  constructor(name) {
    this.name = name
  }
  func() {
    console.log(this.name)
  }
}
/**
 * 1.class使用严格模式
 * 2.Example只能通过new调用
 * 3.func不能通过new调用
 * 4.func不可被枚举
 */
'use strict'
function Example(name) {
  if (!(this instanceof Example)) {
    throw new TypeError("Class constructor Example cannot be invoked without 'new'")
  }
  this.name = name
}
Object.defineProperty(Example.prototype, 'func', {
  value: function () {
    if (!(this instanceof Example)) {
      throw new TypeError("func is not a constructor")
    }
    console.log(this.name)
  },
  enumerable: false,
})




作者:whh666

出处:https://www.cnblogs.com/whh666/p/16907082.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   资深if-else侠  阅读(250)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2021-11-19 echarts自定义系列
more_horiz
keyboard_arrow_up light_mode palette
选择主题
点击右上角即可分享
微信分享提示