抛出包含变量名称的异常

这个问题在这里已经有了答案:

  • 当我的名字作为字符串29答案时如何执行JavaScript函数

  • 您正试图将字符串转换为函数并创建一个变量的新实例,这将不起作用。

    有几种方法可以获得与字符串相对应的函数:如何将字符串转换为javascript函数调用?

    但是更好的方法是简单地执行第一个if语句,或将其转换为开关。

    对于全局变量:

    // Set up in global scope, not in the scope of something else.
    var NoXException = function () { ... }
    
    var variable = "No" + getMissing() + "Exception";
    throw new window[variable]()
    

    对于存储在另一个范围内的变量:

    var exceptions = {}
    exceptions.NoXException = function () { ... }
    
    var variable = "No" + getMissing() + "Exception";
    throw new exceptions[variable]()
    // Alternatively
    throw new window['exceptions'][variable]()
    
    链接地址: http://www.djcxy.com/p/94829.html

    上一篇: Throw Exception containing variable name

    下一篇: jquery: use string as function (error: string is not a function)