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

这个jquery语法是什么?

  •  2
  • allaire  · 技术社区  · 16 年前

    我经常在一些jquery插件中看到这一点

        $('#foo').myPlugin({
        foo: 'bar',
                bar: 'foo'
    });
    

    我指的是.myplugin()部分中的{}。我经常看到匿名函数,比如

    .click(function(){
    });
    

    但是上面的语法看起来不同

    谢谢你的帮助!

    3 回复  |  直到 16 年前
        1
  •  4
  •   Pekka    16 年前

    它是一个物体。这个符号用来模拟 named arguments -一些js在本地无法完成的事情。

    它允许无限扩展附加参数,而无需在函数声明中声明它们:

    function myfunc(args)  { }  
    vs.
    function myfunc(duration, opacity, width, height, speed)  { }
    

    最重要的是,它允许任意排列参数:

    {"duration": "0.5",
     "width": 300,
     "speed": 2 }
    

    由于许多js开发人员没有在ide的上下文中工作(这将使用“look ahead”显示预期的函数参数),这是一件非常方便的事情,因为您不必记住参数出现的顺序。

    这样做的缺点是 作为一个ide,很难为这些伪命名参数提供任何“前瞻性”功能,而参数的任意排序从长远来看可能会导致某种程度的混乱。

        2
  •  2
  •   Syntactic    16 年前

    它是一个javascript对象文本。它是javascript语言的一部分(不是jquery特有的)。javascript对象本质上是名称和值的映射;名称和值用冒号分隔,而对之间用逗号分隔。整件事都用一对花括号包着。

    所以,如果你做了这样的事:

    var obj = { foo: 'bar', name: 'value' };
    

    你以后可以这样做:

    alert(obj.foo); //alerts "bar"
    

    甚至:

    alert(obj['foo']); //also alerts "bar"
    

    在本例中,对象作为参数传递给myplugin()函数。

        3
  •  0
  •   f13o    16 年前

    它只是一个函数调用,其中arg实际上是params的映射。