SlidesJS是一个jQuery内容滑块插件。我想了解消息来源。我对Javascript和jQuery相对较新。但是,我感兴趣的是源代码中的这一行:
$.fn.slides = function( option ) {
// override defaults with specified option
option = $.extend( {}, $.fn.slides.option, option );
...
}
我通过评论理解作者打算合并两个数组,一个包含option
的默认值,另一个是通过调用函数传递的option
参数。但是,它们不是都引用相同的变量:函数slides(option)
的参数?
无论如何它似乎都有效。 这里的魔力是什么?
答案 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)
);
答案 1 :(得分:0)
但是,它们都不是指同一个变量:的参数 功能幻灯片(选项)?
答案是否定的,$.fn.slides.option
是$.fn.slides
函数的属性,而option
是$.fn.slides
函数的函数参数/参数。
函数参数或参数就像一个只能在功能块中访问的局部变量,与函数本身共享相同范围的函数的属性不同。