JavaScript / jQuery简写函数定义

时间:2010-04-11 07:20:59

标签: javascript jquery notation

我正在使用一个jQuery插件,其功能定义如下:

    $('#mydiv').pluginAction({
        someproperty: val, 
        format: 'mm hh',
        labels: ['yes', 'no', 'maybe'], 
        labels1: ['never', 'always']
    });

在我的HTML页面中,我有多个DIV,它们具有formatlabelslabels1相同的属性,但someproperty的值不同。是否有某种类型的JavaScript符号我可以利用它来缩短定义,以便我不必重复代码?

3 个答案:

答案 0 :(得分:6)

有几种方法可以解决这个问题:

  1. 创建一个填充空白的函数;或

  2. 如果插件是您的,请将这些值默认为您想要的值。

  3. (1)的例子:

    function props(val) {
      return {
        someproperty: val,
        format: 'mm hh',
        labels: ['yes', 'no', 'maybe'], 
        labels1: ['never', 'always']
      };
    }
    
    $("#mydiv").pluginAction(props("..."));
    

答案 1 :(得分:4)

Cletus有一个非常好的答案,它允许您生成非常易读的代码。这可能是您案例中最好的解决方案。

只是为了记录,以下类似的东西也是可能的。您可以创建存储所有固定属性的对象文字,然后在需要时使用jQuery#extend指定添加额外属性(例如示例中的someProperty)。

var props = {
 format: 'mm hh',
 labels: ['yes', 'no', 'maybe'], 
 labels1: ['never', 'always']
};

$('#mydiv').pluginAction($.extend(props, { someProperty: val }));

答案 2 :(得分:1)

复制那种代码没有错。它实际上清楚地表明了哪种行为适用于给定的div。但是,如果你说的是数百个重复,请使用其他人的建议。