jQuery extend

摘自API:

jQuery.extend([],target,object1,[objectN])

  用一个或多个其他对象来扩展一个对象,返回被扩展的对象.

  如果不指定target,则给JQuery命名空间本身进行扩展.这有助于插件作者为jQuery增加新方法,如果第一个参数设置为true,则jQuery返回一个深层次的副本.递归地复制找到的任何对象.否则的话,副本会对原对象共享结构.未定义的属性将不会被复制.然而从对象的原型继承的属性将会被复制.

target:一个对象,如果附加的对象被传递给这个方法 ,它将接受新的属性,如果它是唯一的参数将扩展jQuery的命名空间.

object1:待合并到第一个对象的对象.

objectN:待合并到第一个对象的队形.

示例:

 

1. 合并setting和options,修改并返回setting

代码

var setting = {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:true,name:"bar"};

var settings = jQuery.extend(empty,defaults,options);

结果:

settings == {validate:teue,limit:5,name:"bar"}

empty == {validate:true,limit:5,name:"bar"}

var newcss = jQuery.extend(css1,css2) newcss 就是合并的新对象 css1的属性被覆盖.而且会继承css1没有的css2的属性
var newcss = jQuery.extend({},css1,css2) newcss就是合并的新对象,而且没有破坏css1的结构.

摘自 博客:

1.扩展jQuery静态方法

  $.extend({

    test : function(){alert("test函数")}

  })

  用法: $.test()

2.合并多个对象:

3.深度嵌套对象:

  新的extend()允许你更深程度的合并嵌套对象.

   

 //以前的 .extend()

  jQuery.extend(

    {name:"john",location:{city:"Boston"}},

    {last:"Resig",location:{state:"MA"}}
    );

   结果: {name:"john",last:"Resig",location:{state:"MA"}}
  //新的更深入的 .extend()

  jQuery.extend(true,

    {name:"John",location:{city:"Boston"}},
    {last:"Resig",location:{state:"MA"}}
  );

  结果: {name:"John",last:"Resig",location:{city:"Boston",state:"MA"}}

  I got it

原文地址:https://www.cnblogs.com/moli-/p/6547221.html