创建一个类,使用 es6 类语法创建 Function 对象作为实例

2023-12-21

是否可以创建一个类,用其原型上的方法实例化函数?我正在尝试将代码从原型结构转换为使用 es6 类语法。这是一个人为的、过于简化的起点示例

function createFun(init) {
  function fun(newDats) {
    this.data = newDats;
    // create universe
  }
  function internalMethod() {
  }
  fun.data = init;
  fun.aMethod = function () {
    internalMethod();
  }
  assign(fun, AnExtendableClass.prototype);
  return fun;
}

// and can be used as such
fun = createFun('first');
fun('second');
fun.aMethod();
fun.methodFromExtendableClass('third')

这就是我尝试过的

class Fun extend AnExtendableClass {
   constructor(init) {
     super();
     this.data = init;
     function fun(newDats) {
       this.data = newDatas;
       //create universe
     }
     assign(fun, this);
     return fun;
   }

   aMethod() {
   }
}

不幸的是,这不起作用并且没有任何方法作为回报。


是否可以创建一个类,用其原型上的方法实例化函数?

是的,使用 ES6 可以进行子类化Function- 然而,这并不完全好,因为构造函数需要代码字符串:

class Fun {
    constructor() {
        super("newDats", `
            this.data = newDats;
            // create universe
        `)
    }
    data() { }
    aMethod() { }
}

let fun = new Fun;
fun(…);
fun.aMethod(…);

我正在尝试将代码从原型结构转换为使用 es6 类语法。这是一个人为的、过于简化的起点示例

不要使用class语法。新语法非常有限,只能用于标准类声明。如果你做了任何奇怪的事情——从构造函数返回函数、从其他类复制方法、分配静态属性和使用内部方法在这方面肯定很奇怪——那么就使用“旧的”显式方法。新的Reflect.setPrototypeOf在这里给你额外的自由。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建一个类,使用 es6 类语法创建 Function 对象作为实例 的相关文章

随机推荐

  • 良好的 Haskell 编码标准

    有人可以提供一个良好的 Haskell 编码标准的链接吗 我发现了this http urchin earth li ian style haskell html and this http www haskell org haskellw
  • 如何从 Linux x64 主机到 Linux arm64 交叉构建 flutter 应用

    我正在尝试从 linux x64 编译到 linux arm64 当我打字时flutter build linux target platform linux arm64我收到此错误 Cross build from Linux x64 h
  • PHP 星期几数字到星期几文本

    这可能真的很简单 但我找不到 PHP 函数来做到这一点 OK so dow numeric date w 给出星期几的数字 0 6 表示星期日到星期六 And dow text date D 给出文本星期几的 3 个字母缩写 Sun Mon
  • 将 ggplot 保存在函数中

    我正在尝试使用图形设备在函数中保存 ggplot 但我发现代码生成空图 下面是一个非常非常简单的例子 library ggplot2 ff lt function jpeg a jpg qplot 1 20 1 20 dev off ff
  • 怎样才能让海龟认出一个圆圈呢?

    我正在尝试使用 Turtle Graphics 制作一个 Python 程序 在矩形内绘制两个重叠的圆圈 如维恩图 并在维恩图上绘制随机点 我已经成功地做到了这一点 但现在我想让程序识别一个点是在其中一个圆中还是在维恩图的交点中 然后我想根
  • 当两个路径可能是相对的时,将路径与 Windows API 结合起来

    我需要能够将两个不同的 Windows 路径 这两个路径都可能是相对的 组合成一个路径 通过将第二个路径应用为第一个路径的扩展 文件系统上是否实际存在任何一条路径都无关紧要 例子 C abc def gt C abc def C abc d
  • 在编写 Tkinter 文本小部件时更新它,而不是在课程结束后更新

    我陷入困境 因为这是在机密机器上编写的 所以我无法在此处复制 粘贴 作为一个新手 我的方法可能是非正统的 我有一个用 Tkinter 编写的 GUI 带有几个按钮 每个按钮都链接到一个类 该类实际上运行一个简短的脚本 单击按钮时 我初始化一
  • redux-saga:对回调返回做出反应的 eventChannel 和侦听器

    在反应原生中后处理程序 https facebook github io react native docs backhandler侦听器对回调函数做出反应并采取适当的行动 我需要读取我的商店并根据它返回 true 或 false 但我无法
  • 在 Swift 中逐行淡入 UITableViewCell

    我是 swift 的新手 我试图拥有一个 UITableView 并且单元格将被动画化以一一出现 我怎样才能做到这一点 另外 如果新出现的单元格行不在屏幕上 隐藏在表格下方 当每个单元格出现时如何向上移动表格 var tableData1
  • 创建效果 上滑时顶部图片被内容覆盖

    I have to create an effect like in the images but I don t know how to do it and also don t know how to call this effect
  • SQL 语句中文字前面的冒号是什么意思?

    使用 在变量之前 例如 userId在这段代码中 public function removeUser userId command Yii app gt db gt createCommand command gt delete tbl
  • AX 形式的图像

    在 Dynamics AX 中 我们在自定义表单中出于各种目的使用大量图像和图标 目前 我们必须在每台客户端计算机上单独安装图像 图标包才能使一切正常工作 有没有一种方法 或最佳实践 来处理 Dynamics 中的图像和图标 这样就不需要在
  • 使用StreamWriter实现滚动日志,并从顶部删除

    我的 C winforms 4 0 应用程序一直使用线程安全的流编写器来执行内部调试日志记录信息 当我的应用程序打开时 它会删除该文件并重新创建它 当应用程序关闭时 它会保存文件 我想做的是修改我的应用程序 以便它进行附加而不是替换 这是一
  • Grails 2.x schema-export 或类似命令能否为给定数据源的模式更新生成 DDL?

    Grails schema export 在生成 DDL 来为特定数据库创建数据库模式方面做得很好 然而我想做的是让 grails 只输出用于更新已创建模式的 DDL 而不是从头开始创建它的 DDL 我认为这应该是可能的 因为 grails
  • 如何获取 PDF 格式的 UITableView 快照

    我有一个UITableView其中填充了一些数据 但由于它包含的数据的单元格数量多于屏幕的可视区域 我只能获取它的快照 我想知道是否有其他方法可以获取整个表格视图pdf快照 这是我尝试过的谢谢 IBAction clickMe id sen
  • 如何对关系代数中不存在的事物进行建模或查询[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我想查询所有从未租过的公寓的id 我尝试过这样的事情 a id apartments a id from date Exists end d
  • Linux /proc/kallsyms 文件,内核在哪里保存核心符号列表?

    要显示符号 proc kallsyms 对于模块符号 内核循环遍历以modules内核变量 并迭代每个模块的符号表 但对于 核心 内核内置符号 它使用了一堆内核变量 如以下函数所示 static unsigned long kallsyms
  • 如何使用otool

    苹果建议我使用 strings 或 otool 来检测代码中的私有API isinf 我完全是新手 所以如何使用这些工具有任何帮助 打开终端 Ctrl 空格 gt 输入 终端 并打印示例 otool MVv yourlib a 求助 oto
  • 致命错误:未找到“TCPDF”类

    我正在生成 PDF 文件 但遇到了麻烦 谁能告诉我这个错误的解决方案 下面是我为此使用的代码 我为此包含了 tcpdf 但有一个致命错误 表明 tcpdf 文件不可用 或者我们可以说找不到
  • 创建一个类,使用 es6 类语法创建 Function 对象作为实例

    是否可以创建一个类 用其原型上的方法实例化函数 我正在尝试将代码从原型结构转换为使用 es6 类语法 这是一个人为的 过于简化的起点示例 function createFun init function fun newDats this d