首页 > 编程语言 > 详细

javascript 元编程之如何不使用 eval,通过一个字符串来调用对应的函数

时间:2020-11-25 15:22:57      阅读:18      评论:0      收藏:0      [点我收藏+]

背景

TOC

// function we want to run
var fnstring = "runMe";

function runMe() {
    // do stuff
}

实现 fnstring(),在 php 中可以使用 call_user_func(),那么 js 中应该如何做呢?

比较死板的做法

// function we want to run
var fnstring = "runMe";

switch (fnstring) {
    case "functionX": functionX(); break;
    case "functionY": functionY(); break;
    case "functionZ": functionZ(); break;
    case "runMe": runMe(); break;
}

变通的方法

无参数

// function we want to run
var fnstring = "runMe";

// find object
var fn = window[fnstring];

// is object a function?
if (typeof fn === "function") fn();

有参数

// function name and parameters to pass
var fnstring = "runMe";
var fnparams = [1, 2, 3];

// find object
var fn = window[fnstring];

// is object a function?
if (typeof fn === "function") fn.apply(null, fnparams);

javascript 元编程之如何不使用 eval,通过一个字符串来调用对应的函数

原文:https://www.cnblogs.com/ninkaki/p/14035564.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!