2

我在 JavaScript 或 jQuery 插件中多次遇到这种语法

$.fn.testPlugin = function( options ) {  

    // Create some defaults, extending them with any options that were provided
    var settings = $.extend( {
      'location'         : 'top',
      'background-color' : 'blue'
    }, options);

我确实了解该功能已扩展,但我不清楚之后$.extend({})的内容。

4

2 回答 2

3

$.extend()方法会将第二个(和后续)参数中的对象中给定的任何键/值对合并到第一个参数中传递的对象中。然后它返回(更新的)第一个参数作为结果。

options因此,这只是为这两个选项指定一些默认值的一种方式,插件用户将参数传递给插件的任何内容都将覆盖这些默认值。

例如,如果您调用:

$(el).testPlugin({ location: 'left' });

然后在插件中生成的设置将是:

var settings = {
    location:         'left',
    background-color: 'blue'
};
于 2013-03-20T12:57:58.660 回答
0

jQuery.extend() is syntax for merging the contents of two or more objects together into the first object. http://api.jquery.com/jQuery.extend/

于 2013-03-20T12:59:04.163 回答