Rya*_*nce 5 javascript mootools
如何通过抛出变量名来实例化一个类?在类中考虑这个方法:
animate: function(el, build) {
console.log(build.effect);
var animationClass = new build.effect(el,build);
},
Run Code Online (Sandbox Code Playgroud)
构建是一个包含大量内容的对象,但最重要的是"效果".此效果是独立动画类的名称 - 一个名为"MarioKartMenu".
console.log(build.effect)打印出"MarioKartMenu".但当然我得到:TypeError:表达式'build.effect'的结果[MarioKartMenu]不是构造函数.
如果我摒弃了动力,只需要制作代码:
animate: function(el, build) {
var animationClass = new MarioKartMenu(el,build);
},
Run Code Online (Sandbox Code Playgroud)
它工作得很好.是否有可能让它像我试图做的那样充满活力?
如果MarioKartMenu在全局范围中定义了该函数,则可以使用以下命令通过其字符串名称访问它:
window["MarioKartMenu"]
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为所有全局变量都是window对象的属性.
鉴于上述情况,您可以使用以下方法实现您想要的:
var menuConstructor = window[build.effect];
var animationClass = new menuConstructor(el, build);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4232 次 |
| 最近记录: |