代码之家  ›  专栏  ›  技术社区  ›  Victor

查找并执行与字符串匹配的JavaScript函数

  •  2
  • Victor  · 技术社区  · 14 年前

    如何根据字符串参数在对象内部查找和执行函数?

    请参见以下示例:

                   var parameters = 'people';
    
                    switch (parameters) {
                         case 'people':
                              people.initialize();
                              break;
                    }
    

    在这种情况下,如何删除switch case语句?仅仅知道对象的字符串名就可以调用对象吗?

    4 回复  |  直到 14 年前
        1
  •  3
  •   Marcel Korpel    14 年前

    组织您的对象

    var myObjects = {
        people: someObject,
        notPeople: someOtherObject
    };
    var parameters = 'people';
    myObjects[parameters].initialize();
    

    不要

    window[parameters].initialize();
    

    但将它们组织在逻辑对象中是更好的选择。

        2
  •  1
  •   Loïc Février    14 年前

    你可以用eval。

    或者你可以使用“模式工厂” http://en.wikipedia.org/wiki/Factory_method_pattern

    对象用字符串向工厂声明自己。一旦你有一个字符串要求工厂给你的对象。

        3
  •  0
  •   Klaus Byskov Pedersen    14 年前

    你可以随时使用 eval ...

        4
  •  -1
  •   James Sumners    14 年前
    function people() { alert('You called people().'); }
    var parameters = 'people';
    eval(parameters+'()');
    

    这应该会给你一个警告,说“你叫人()