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]);
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3349/viewspace-2807389/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 快速排序【遞迴】【非遞迴】排序遞迴
- JS物件導向:JS繼承方法總結JS物件繼承
- JS中的繼承JS繼承
- js的繼承方法小結(prototype、call、apply)JS繼承APP
- js之繼承JS繼承
- js繼承方式JS繼承
- js實現繼承的方法以及優缺點JS繼承
- 淺談JS的繼承JS繼承
- JS中的繼承(下)JS繼承
- 聊聊JS中的繼承JS繼承
- JS中的繼承(上)JS繼承
- js的13種繼承JS繼承
- 圖解js的繼承圖解JS繼承
- css可繼承屬性和非繼承屬性一覽CSS繼承
- JS原型鏈繼承JS原型繼承
- JS 相容、繼承、bind、thisJS繼承
- js 繼承小結JS繼承
- js繼承圖解JS繼承圖解
- JS中繼承的實現JS中繼繼承
- JS的原型鏈和繼承JS原型繼承
- JS 繼承的正確操作JS繼承
- 遍歷二叉樹-------遞迴&非遞迴二叉樹遞迴
- python-動態規劃的遞迴、非遞迴實現Python動態規劃遞迴
- 揹包問題的遞迴與非遞迴演算法遞迴演算法
- Vue3.0的遞迴監聽和非遞迴監聽Vue遞迴
- 初步瞭解 JS 繼承JS繼承
- js繼承方式講解JS繼承
- JS進階系列 --- 繼承JS繼承
- JS專題之繼承JS繼承
- JS中的繼承與原型鏈JS繼承原型
- 如何回答關於 JS 的繼承JS繼承
- JS中的多種繼承方式JS繼承
- 面試官問:JS的繼承面試JS繼承
- js中的繼承(es5)JS繼承
- js建構函式的繼承JS函式繼承
- day23:單繼承&多繼承&菱形繼承&__init__魔術方法繼承
- 資料結構-樹以及深度、廣度優先遍歷(遞迴和非遞迴,python實現)資料結構遞迴Python
- 遞迴和非遞迴分別實現求n的階乘遞迴