gpt4 book ai didi

javascript - 我如何引用一个以字符串形式命名的类?

转载 作者:行者123 更新时间:2023-11-30 06:56:24 25 4
gpt4 key购买 nike

<分区>

在 Perl 中:

package Foo {
sub new { bless {} }
sub some_method { 42 }
}
my $f = "Foo"->new;
say ref $f; # 'Foo'
$f->some_method;

在 Python 中:

class Foo:
def some_method():
return 42

f = globals()['Foo']()
print(type(f).__name__) # 'Foo'
f.some_method

在 ruby 中:

class Foo
def some_method
return 42
end
end

f = Module.const_get('Foo').new
puts f.class # 'Foo'
f.some_method

在 Javascript 中:

class Foo {
some_method() { return 42 }
}

let f = new ?????????????;
console.log(f.constructor.name); // 'Foo'
f.some_method();

如果 Foo 是一个简单的函数而不是一个类,this["Foo"] 会起作用,但是您如何处理类?我尝试了 eval,但是 f 实例不会存在于作用域之外,因此该解决方案通常不适用。


编辑以解决可能的重复问题:工厂、注册表等只有在我可以引用工厂中现有的类时才起作用,但如果我想引用的类事先不知道,我就无法使用这项工作-周围。

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