jquery 的extend的方法
用flot.js 用到了jquery的extend 方法
关于extend方法 我就照手册打一遍,加深一下理解,说实话其实我理解的也不透
extend 用一个或多个其他对象来扩展一个对象,返回被扩展的对象。
如果不指定target,则给jquery命名空间本身进行扩展,这有助于插件作者作为jquery增加新方法。如果第一个参数设置为true,则jquery返回一个深层次的副本,递归地复制找到任何对象。否则的话,副本会与原对象共享结构。未定义的属性将不会被复制,然后从对象的原型继承的属性将会被复制。
参数
target,【object1】,【objectn】
target:一个对象,如果附加的对象被传递给这个方法那么它将接收新的属性,如果他是唯一的参数将扩展jquery命名的空间。
object1:待合并到第一个对象的对象
objectn:待合并到第n个对象的对象
【deep】,target,object1,objectn
deep:如果设为true,则递归合并。
target:待修改对象
object1:待合并到第一个对象的对象
示例
合并settings和options,修改并返回settings。
var settings = {validate:false,limit:5,name:"foo"}
var options = {validate:true,name:"bar"}
$.extend(settings,options);
结果:
settings == {validate:true,limit:5,name:"bar"}
合并default和options,并返回settings
var empty ={};
var default= {validate:false,limit:5,name:"foo"};
var options = {validate:validate:true,name:"bar"};
var settings = $.extend(empty,default,options);
结果:
settings ={validate:true,limit:5,name:"bar"};
empty = {validate:true,limit:5,name:"bar"}