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

Jquery-保持干燥-动态命名函数?

  •  1
  • Matthew  · 技术社区  · 14 年前

    所以我认为保存代码的最好方法是用动态名称调用函数。例如,我可能需要调用“productTemplate”、“userTemplate”、“orderTemplate”等。。。

    这在javascript/jquery中可能吗?另外,这是一个表演的热门还是不那么多?

    2 回复  |  直到 14 年前
        1
  •  3
  •   Matchu    14 年前

    把这些函数存储在一个对象下怎么样?您可以使用 eval 或者用 window[type + 'Template']

    var templates = {};
    templates.order = function (order) { /* ... */ }
    templates.product = function (product) { /* ... */ }
    templates.user = function (user) { /* ... */ }
    
    my_element.innerHTML = templates.user(my_user);
    

    (同时 jQuery Templates

        2
  •  4
  •   Nick Craver    14 年前

    在基本的JavaScript中,不需要jQuery,不管对象是什么,甚至 window 你可以用 bracket notation ,例如:

    var methodName = "productTemplate";
    obj[methodName](); //exe obj.productTemplate();
    

    对于全局函数也是如此,只需替换 obj 具有 . 不过,您也可以使用jQuery插件或核心来实现这一点,例如 .toggle(bool) .show() .hide()

    $("selector")[bool ? "show" : "hide"]()