js深度继承的非递归方法

 // start
  var aaa= function() {
 var options, name, src, copy, copyIsArray, clone,
    target = arguments[ 0 ]  {},
    i = 1,
    length = arguments.length,
    deep = false;

// Handle a deep copy situation
if ( typeof target === "boolean" ) {
    deep = target;

    // Skip the boolean and the target
    target = arguments[ i ]  {};
    i++;
}

// Handle case when target is a string or something (possible in deep copy)
if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
    target = {};
}

// Extend jQuery itself if only one argument is passed
if ( i === length ) {
    target = this;
    i--;
}

for ( ; i 0){
                    var temb=ary.shift();

                if( jQuery.isPlainObject( temb.value ) ( copyIsArray = jQuery.isArray( temb.value ))){
                mem[temb.name]=jQuery.isPlainObject( temb.value )?{}:(jQuery.isArray( temb.value ) ? [] : '');            
                     for(var k in temb.value){          
                       ary.push({name:temb.name+'.'+k,value:temb.value[k]});
                       mem[temb.name+'.'+k]=jQuery.isPlainObject( temb.value[k] )?{}:(jQuery.isArray( temb.value[k] ) ? [] : '');            
                     }                        
                  }else{
                  var aryA=temb.name.split(".");
                  var tembName='';

                  for(var n=1,len=aryA.length;n

};
var a={a:{a:1,b:2},b:3,c:{e:44,ff:[1,4,5]}};
var b={};
aaa(true,b,a);
alert(b.c.ff[2]);

请使用浏览器的分享功能分享到微信等