• js 动态调用字符串方法并传入对应参数


    在项目应用中,经常会需要根据业务数据需要动态去拼凑字符串,然后将字符串作为js代码进行执行。

    js提供eval()来支持。这里分享一个调用函数并传入需要参数的一个方法demo

    //动态调用自定义js方法.args是以逗号分隔的参数字符串
    var CallFunName = function (fn, args) {
        var aArr = [];//传入的参数集合
    
        if (args != null && args != "") {
            aArr = args.split(",");
        }
    
    
        try {
            fn = eval(fn);
        } catch (e) {
            console.log(e);
            alert(funName + '方法不存在!');
        }
        if (typeof fn === 'function') {
            try {
                fn.apply(this, aArr );//注意此处用apply,而非call
            }
            catch (ex) {
                console.log(ex);
                alert(funName + '变量个数不对');
            }
        }
    }

    1、考虑到调用函数方法CallFunName第一个参数(函数名)是在页面动态添加的js内容(即字符串),故没有直接支持传入参数数组的方式,而是一串以逗号分隔的参数字符串

    2、在方法体内把参数字符串转换为数组。然后通过apply调用

          此处不选用call调用的原因为:call调用形式会把参数数组作为一个变量传递给待待用的方法,而往往我们待调用的方法参数不是以数组形式声明的:

    function Fun(arg1,arg2,...)
    {
          ...
    }
  • 相关阅读:
    浏览器渲染HTML页面步骤
    JavaScript中必记英语单词及含义
    JavaScript中的线程与进程
    成绩转换 题解
    计算球的体积 题解 #define
    计算两点间的距离 题解
    ASCII码排序 题解
    python学习——协程
    python学习——进程
    python学习——锁
  • 原文地址:https://www.cnblogs.com/senyier/p/7835240.html
Copyright © 2020-2023  润新知