gpt4 book ai didi

javascript - 通过变量动态实例化一个类

转载 作者:数据小太阳 更新时间:2023-10-29 06:09:05 24 4
gpt4 key购买 nike

如何通过输入变量名来实例化一个类?在一个类中考虑这个方法:

animate: function(el, build) { 
console.log(build.effect);
var animationClass = new build.effect(el,build);
},

Build 是一个包含很多东西的对象,但最重要的是“影响”。这个效果是一个独立动画类的名字——一个叫做“MarioKartMenu”。

console.log(build.effect) 打印出“MarioKartMenu”。但我当然得到:TypeError:表达式'build.effect' [MarioKartMenu] 的结果不是构造函数。

如果我破坏了动态性并且只是这样编写代码:

animate: function(el, build) {
var animationClass = new MarioKartMenu(el,build);
},

它工作得很好。是否可以像我尝试做的那样使其动态化?

最佳答案

如果函数 MarioKartMenu 是在全局范围内定义的,您可以使用以下字符串名称访问它:

window["MarioKartMenu"]

这是可行的,因为所有全局变量都是 window 对象的属性。

鉴于上述情况,您可以使用以下方法实现您想要的:

var menuConstructor = window[build.effect];
var animationClass = new menuConstructor(el, build);

关于javascript - 通过变量动态实例化一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/923575/

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