Javascript有没有动态执行函数的方法(函数名字动态)

查看:109
本文介绍了Javascript有没有动态执行函数的方法(函数名字动态)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

需求是我根据点击元素的ID执行对应ID名称的函数初始化方法。我之所以用动态的原因是作为前端角色,我不知道每个ID是什么。(实际上我是知道了)

var oId;
$('#btn').click(function () {
    oId = $('xxx').attr('id');
    //具体实现不重要
    // oId 的具体格式是 [id]-[时间戳]
    var arr = oId.split('-');
    eval(arr[0]+".init()");
});

是否有其他的方法来解决?(并不排斥 eval函数 )

补充:
以防一些朋友不明白。
就是一般我们调用函数方法如下: func.init(); 调用 func 方法的 init(); 现在我需要 func 这个是动态的,变成xxx.init();

最终方案:
有助于关注问题的朋友知道。

var oId;
$('#btn').click(function () {
    oId = $('xxx').attr('id');
    //具体实现不重要
    // oId 的具体格式是 [id]-[时间戳]
    var arr = oId.split('-');
    
    // 解决方法如下
    var fn = window[arr[0]];
    if( fn && fn.init ) {
        fn.init();
    }
});

解决方案

假设你的方法是全局的

window[a[0]]['init']()

这篇关于Javascript有没有动态执行函数的方法(函数名字动态)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆