jquery - JavaScript用一个函数执行任意函数、求指教
PHP中文网
PHP中文网 2017-04-11 11:32:13
[JavaScript讨论组]

示例:

var demo = {
    run: function(a){
    
    },
    a:function(test){
        
    },
    b:function(test){
        
    }
}
//传入a就执行this.a(参数)
demo.run(a,参数);

疑问:

感觉用数字挨个判断好不科学,所以我希望是直接传入方法名,就能给我返回该方法的实例,求指教下该如何实现呢?原生的或者jquery都行、先O(∩_∩)O谢谢了

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(3)
PHP中文网

这不就是典型的策略模式吗...

var demo = {
    run: function(method, args){
         this[method].call(this, args);
    },
    a:function(test){
        console.log( test + ' a' )
    },
    b:function(test){
        console.log( test + ' b' );
    }
};

demo.run('a', 'Run');
迷茫
var obj = {
    run: function() {
        var method = arguments[0];
        if(!method) return;
        var arglist = Array.prototype.slice.call(arguments, 1);
        return this[method].apply(this, arglist);
    },
    aaa: function() {return 1;},
    bbb: function() {return 2;},
    ccc: function(var1) {return var1},
    ddd: function(var1, var2){return var1 + var2}
};
obj.run("aaa"); // 1
obj.run("bbb"); // 2
obj.run("ccc", 3); // 3
obj.run("ddd", 4, 5); // 9
高洛峰
{
   run:function(){
      this[arguments[0]](arguments.slice(1))
   }
}

用手机输入的,有中文字符,不要复制

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号