gpt4 book ai didi

javascript - 如何在 JavaScript 中定义实例化函数的行为

转载 作者:行者123 更新时间:2023-11-29 10:09:41 25 4
gpt4 key购买 nike

使用 ES2015,我想扩展 Function 类并将其实例用作可调用函数。

class Foo extends Function {
// how to wite behavior?
}

let foo = new Foo();

foo();
foo.call();
// this is callable, but no behavior defined

如何让 foo 在其声明中有其特定的行为?

最佳答案

Function 构造函数 accepts arguments :

new Function ([arg1[, arg2[, ...argN]],] functionBody)

在这种情况下,您可以使用适当的参数调用 super:

// SNIPPET ONLY WORKS ON ES2015-ENABLED ENVIRONMENTS
"use strict";
class Foo extends Function {
constructor() {
super("a", "console.log(a);")
}
}

let foo = new Foo();

foo("one");
foo.call(null, "two");

现在,在字符串文字中编写 JavaScript 代码是一件痛苦的事情,函数文本中的代码是在全局范围内计算的,因此我们不能做一些事情,比如在构造函数中定义实际函数并从函数文本。所以这个用处有限。但是……

关于javascript - 如何在 JavaScript 中定义实例化函数的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35722036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com