Javascript 对象实例化类似于 php new $className();
我正在尝试做与此相同的事情,但是在 JS 中。
$className = 'MyClass';
$obj = new $className();
我已经尝试过明显的事情,但没有运气,目前求助于使用 eval ,如下所示:/
eval('var model = ' + modelName + '();');
谢谢!
I'm trying to do the equivalent to this but in JS.
$className = 'MyClass';
$obj = new $className();
I've tried obvious things but with no luck, currently resorted to using eval as below :/
eval('var model = ' + modelName + '();');
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
对于全局“类”,请使用:
window
是全局命名空间。直接在中定义的变量和方法(没有包装器)会自动存储在全局命名空间中。
对于其他“命名空间”的方法,请使用:
对于未附加到命名空间的私有方法,除了 eval 或 Function 之外没有其他解决方案:
您应该尽可能避免使用
eval
,尤其是当您使用未知字符串。For global "classes", use:
window
is the global namespace. Variables and methods defined immediately within<script>
, without a wrapper are automatically stored in the global namespace.For methods of other "namespaces", use:
For private methods which aren't attached to a namespace, there's no solution except for eval or Function:
You should avoid
eval
whenever possible, especially if you're working with unknown strings.请参阅这个SO问题以获得一个好的答案:动态对象创建
但基本上你想要
返回新窗口[型号名称];
See this SO question for a good anwser: Dynamic Object Creation
But basically you want
return new window[modelName];