javascript復(fù)制對象使用說明
更新時間:2011年06月28日 23:39:49 作者:
javascript復(fù)制對象使用說明,需要的朋友可以參考下。
oldObj是一個對象,而不是值
例如var newObj=oldObj;
如果想oldObj改變的時候不影響到newObj;
可以這樣寫一個函數(shù)
function clone(myObj){
if(typeof(myObj) != 'object') return myObj;
if(myObj == null) return myObj;
var myNewObj = new Object();
for(var i in myObj)
myNewObj[i] = clone(myObj[i]);
return myNewObj;
}
然后這樣調(diào)用
newObj=clone(oldObj)
之后,oldObj的值無論怎么改變都不會影響newObj
JavaScript復(fù)制對象
語法:
oElement = object . cloneNode ( bCloneChildren )
參數(shù):
bCloneChildren : 可選項。布爾值(Boolean)。false | true
false : 默認值??寺?object 時不包括 object 的 childNodes 集合。即其所有子對象。
true : 克隆 object 時包括 object 的 childNodes 集合。即其所有子對象。
返回值:
oElement : 對象(Element)。返回克隆后的新對象的引用。
說明:
在文檔結(jié)構(gòu)中克隆 object 。
克隆后,獲取克隆對象的 id 時,將返回一個集合。
在運行時使用此方法是可以的。在對象的關(guān)閉標(biāo)簽被解析前,文檔空間可能不能被呈遞。
示例代碼:
<script>
function rdl_fnClone(){
var oCloneNode=oList.cloneNode(true);
cloneArea.appendChild(oCloneNode);
}
</script>
<table width=98%><tr><td>
<ul id=oList>
<li>第1個列表項目
<li>第2個<a href="#" onclick="return false;">列表項目</a>
<li style="font-weight:bold;">第3個列表項目
</ul>
</td><td id=cloneArea>
</td></tr></table>
<input type=button value=" 克隆 " onclick= "rdl_fnClone();">
例如var newObj=oldObj;
如果想oldObj改變的時候不影響到newObj;
可以這樣寫一個函數(shù)
復(fù)制代碼 代碼如下:
function clone(myObj){
if(typeof(myObj) != 'object') return myObj;
if(myObj == null) return myObj;
var myNewObj = new Object();
for(var i in myObj)
myNewObj[i] = clone(myObj[i]);
return myNewObj;
}
然后這樣調(diào)用
newObj=clone(oldObj)
之后,oldObj的值無論怎么改變都不會影響newObj
JavaScript復(fù)制對象
語法:
oElement = object . cloneNode ( bCloneChildren )
參數(shù):
bCloneChildren : 可選項。布爾值(Boolean)。false | true
false : 默認值??寺?object 時不包括 object 的 childNodes 集合。即其所有子對象。
true : 克隆 object 時包括 object 的 childNodes 集合。即其所有子對象。
返回值:
oElement : 對象(Element)。返回克隆后的新對象的引用。
說明:
在文檔結(jié)構(gòu)中克隆 object 。
克隆后,獲取克隆對象的 id 時,將返回一個集合。
在運行時使用此方法是可以的。在對象的關(guān)閉標(biāo)簽被解析前,文檔空間可能不能被呈遞。
示例代碼:
復(fù)制代碼 代碼如下:
<script>
function rdl_fnClone(){
var oCloneNode=oList.cloneNode(true);
cloneArea.appendChild(oCloneNode);
}
</script>
<table width=98%><tr><td>
<ul id=oList>
<li>第1個列表項目
<li>第2個<a href="#" onclick="return false;">列表項目</a>
<li style="font-weight:bold;">第3個列表項目
</ul>
</td><td id=cloneArea>
</td></tr></table>
<input type=button value=" 克隆 " onclick= "rdl_fnClone();">
您可能感興趣的文章:
- jQuery中json對象的復(fù)制方式介紹(數(shù)組及對象)
- JavaScript數(shù)組復(fù)制詳解
- JavaScript 數(shù)組的深度復(fù)制解析
- javascript 三種數(shù)組復(fù)制方法的性能對比
- Javascript 復(fù)制數(shù)組實現(xiàn)代碼
- js中如何復(fù)制一個對象并獲取其所有屬性和屬性對應(yīng)的值
- 原生js實現(xiàn)復(fù)制對象、擴展對象 類似jquery中的extend()方法
- 深入理解JavaScript中的對象復(fù)制(Object Clone)
- 改進版通過Json對象實現(xiàn)深復(fù)制的方法
- JavaScript數(shù)組和對象的復(fù)制
相關(guān)文章
JavaScript中使用構(gòu)造函數(shù)實現(xiàn)繼承的代碼
JavaScript中借用構(gòu)造函數(shù)實現(xiàn)繼承的代碼,需要的朋友可以參考下。2010-08-08JavaScript面向?qū)ο?極簡主義法minimalist approach)
荷蘭程序員 Gabor de Mooij 提出了一種比 Object.create ()更好的新方法,他稱這種方法為極簡主義法(minimalist approach)。這也是我推薦的方法2012-07-07面向?qū)ο蟮腏avascript之二(接口實現(xiàn)介紹)
接口是面向?qū)ο驤avascript工具箱中最有用的特性之一。我們都知道GOF在設(shè)計模式中說到:面向接口編程,而非面向?qū)崿F(xiàn)編程2012-01-01javascript 面向?qū)ο缶幊? function是方法(函數(shù))
在進行編程時,必免不了要碰到復(fù)雜的功能。初學(xué)者最怕復(fù)雜的功能,因為不能夠很好的進行功能邊界劃分,只能一大串if、循環(huán)加case堆疊在一起,結(jié)果出來的程序自己看著暈,別人看著更暈。2009-09-09學(xué)習(xí)面向?qū)ο笾嫦驅(qū)ο蟮幕靖拍?對象和其他基本要素
學(xué)習(xí)面向?qū)ο笾嫦驅(qū)ο蟮幕靖拍?對象和其他基本要素2010-11-11