$.extend()方法在
jquery
中有两个用法,第一种是扩展方法,第二种是
用jquery实现的继承方式
1>
扩展方法
jquery.extend
对jquery对象的扩展,可以理解为
静态
方法,是全局的,不需要实例jquery就可以使用。
JAVASCRIPT
:
2> jQuery实现的继承方式
jQuery.extend(
[deep]
, target,
object
1,
[objectN]
)
返回值:Object
把2个对象合并得到新的target,deep是可选的(
递归
合并)
合并 settings 和 options,修改并返回 settings。
jQuery 代码:
结果:
描述:
合并 defaults 和 options, 不修改 defaults。
jQuery 代码:
结果:
jQuery.fn.extend
JAVASCRIPT:
jQuery.extend({
min: function(a, b) { return a < b ? a : b; },
max: function(a, b) { return a > b ? a : b; }
});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" }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" }
对jQuery元素的扩展,只能用在jQuery元素上,可以理解为普通方法。定义插件时需要返回this,以支持jQuery的链式操作。