ITPub博客

首页 > IT职业 > IT职场 > js深度继承的非递归方法

js深度继承的非递归方法

IT职场 作者:davidtim 时间:2021-09-09 08:57:01 0 删除 编辑
 // 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]);

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3349/viewspace-2807389/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-11-06

  • 博文量
    69
  • 访问量
    20646