JQuery中的extend函数

1、jQuery.fn.extend(object)

扩展 jQuery 元素集来提供新的方法(通常用来制作插件)。
例如:增加两个插件方法。

jQuery.fn.extend({
  check: function() {
    return this.each(function() { this.checked = true; });
  },
  uncheck: function() {
    return this.each(function() { this.checked = false; });
  }
});
$("input[type=checkbox]").check();
$("input[type=radio]").uncheck();

2、jQuery.extend(object)

扩展jQuery对象本身。用来在jQuery命名空间上增加新函数。
例如:在jQuery命名空间上增加两个函数。

jQuery.extend({
  min: function(a, b) { return a < b ? a : b; },
  max: function(a, b) { return a > b ? a : b; }
});
jQuery.min(2,3); // => 2
jQuery.max(4,5); // => 5

3、jQuery.extend([deep], target, object1, [objectN])

用一个或多个其他对象来扩展一个对象,返回被扩展的对象。用于简化继承。
参数说明:

deep(默认为false):是否复制(继承)对象中的对象。为true则继承所有,为false则不会继承子对象。

例1:合并 settings 和 options,修改并返回 settings。

var settings = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
jQuery.extend(settings, options);
结果:
settings == { validate: true, limit: 5, name: "bar" }

例2:合并 defaults 和 options, 不修改 defaults。

var empty = {};
var defaults = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
var settings = jQuery.extend(empty, defaults, options);
结果:
settings == { validate: true, limit: 5, name: "bar" }
empty == { validate: true, limit: 5, name: "bar" }
posted @ 2015-09-15 11:11  seven7seven  阅读(291)  评论(0编辑  收藏  举报