gpt4 book ai didi

javascript - 使用字符串值作为要调用的函数的名称

转载 作者:行者123 更新时间:2023-11-28 13:51:17 24 4
gpt4 key购买 nike

我希望能够做这样的事情:

var MyObject = function(prop) {
this.property = prop;
};

var stringVar = 'MyObject';

var myObject = new stringVar(1); // This doesn't work.

assertTrue(myObject.property === 1);

我知道这会起作用:

var myObject = new window[stringVar](1);

但我想知道是否有一种更加上下文中立的方式来实现它。

作为旁注:我显然试图避免使用 eval()

最佳答案

这是 Javascript 中的一个已知限制。无法以上下文中立的方式通过字符串引用函数。你所拥有的就是你所能做的。

所以,如果你把所有这些都放在一个闭包中,它是行不通的。您唯一的选择是将构造函数作为另一个对象的方法:

var constructors = {
MyObject: function(prop) {
this.property = prop;
}
}

var stringVar = 'MyObject';

var myObject = new constructors[stringVar](1);

关于javascript - 使用字符串值作为要调用的函数的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10758279/

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