gpt4 book ai didi

Javascript 对象实例化类似于 php new $className();

转载 作者:行者123 更新时间:2023-11-30 08:13:05 26 4
gpt4 key购买 nike

我正在尝试做与此相同的事情,但在 JS 中。

$className = 'MyClass';
$obj = new $className();

我已经尝试过明显的事情但没有运气,目前使用 eval 如下:/

eval('var model = ' + modelName + '();');

谢谢!

最佳答案

对于全局“类”,使用:

var classname = "Date";
var obj = new window[classname]();

window是全局命名空间。在 <script> 中立即定义的变量和方法, 没有包装器会自动存储在全局命名空间中。

对于其他“命名空间”的方法,使用:

var classname = "round";
var obj = new Math[funcname]();
// Illustrative purposes only, Math doesn't need `new`

对于没有附加到命名空间的私有(private)方法,除了 eval 或 Function 之外没有其他解决方案:

var classname = "nonglobal";
var obj = new (Function(classname))();

你应该避免 eval只要有可能,尤其是当您使用未知字符串时。

关于Javascript 对象实例化类似于 php new $className();,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7621410/

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