SlidesJS Source - 使用指定选项覆盖默认值

时间:2013-02-23 13:16:06

标签: jquery slidesjs

SlidesJS是一个jQuery内容滑块插件。我想了解消息来源。我对Javascript和jQuery相对较新。但是,我感兴趣的是源代码中的这一行:

$.fn.slides = function( option ) {
   // override defaults with specified option
   option = $.extend( {}, $.fn.slides.option, option );
      ...
}

我通过评论理解作者打算合并两个数组,一个包含option的默认值,另一个是通过调用函数传递的option参数。但是,它们不是都引用相同的变量:函数slides(option)的参数?

无论如何它似乎都有效。 这里的魔力是什么?

2 个答案:

答案 0 :(得分:0)

option参数是Object,其中包含插件的相应设置值。 $.fn.slides.option包含插件的默认设置。因此,当您传递自定义设置(通过option参数)时,这两个对象将合并,您的自定义值将覆盖默认值。

jQuery.extend方法是关键所在。它将两个或多个对象的内容合并到第一个对象中。

option = $.extend( 
              {}, // the target new Object which represents the final merged options
              $.fn.slides.option, // Object with default option values
              option // Object with custom option values (the passed argument)
         );

请参阅documentation here

答案 1 :(得分:0)

  

但是,它们都不是指同一个变量:的参数   功能幻灯片(选项)?

答案是否定的,$.fn.slides.option$.fn.slides函数的属性,而option$.fn.slides函数的函数参数/参数。

函数参数或参数就像一个只能在功能块中访问的局部变量,与函数本身共享相同范围的函数的属性不同。