原生js實現的物件複製和擴充套件程式碼例項

admin發表於2017-03-28

本章節介紹一下如何使用原生的javascript實現對物件的賦值和擴充套件效果。

如果使用jquery這當然是非常的輕鬆,具體可以參閱相關閱讀。

相關閱讀:

擴充套件和克隆物件可以參閱$.extend()函式用法詳解一章節。

程式碼例項:

克隆一個物件:

[JavaScript] 純文字檢視 複製程式碼
function cloneObj(oldObj){    
  if(typeof(oldObj) != 'object') return oldObj;
  if(oldObj == null) return oldObj;
  var newObj = new Object();
  for (var prop in oldObj)
  newObj[prop] = cloneObj(oldObj[prop]);
  return newObj;
};
 
var obj={
  webName:"螞蟻部落",
  age:2,
  target:"分享互助"
}
var newObj=cloneObj(obj);
console.log(JSON.stringify(newObj));
console.log(newObj==obj);

上面的程式碼已經說明了一切,這裡就不多介紹了。擴充套件一個物件:

[JavaScript] 純文字檢視 複製程式碼
function cloneObj(oldObj){
  if(typeof(oldObj) != 'object') return oldObj;
  if(oldObj == null) return oldObj;
  var newObj = new Object();
  for (var i in oldObj)
    newObj[i] = cloneObj(oldObj[i]);
  return newObj;
};
 
function extendObj(){
  var args = arguments;
  if (args.length < 2) return;
  var temp = cloneObj(args[0]); //呼叫複製物件方法
  for (var n = 1; n < args.length; n++) {
    for (var prop in args[n]) {
      temp[prop] = args[n][prop];
    }
  }
  return temp;
}
 
var obj={
  webName:"螞蟻部落",
  age:2,
  target:"分享互助"
}
var objAn={
  address:"青島市南區"
}
var newObj=extendObj(obj,objAn);
console.log(JSON.stringify(newObj));

相關文章