當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Lodash _.clone()用法及代碼示例


_.clone()方法用於創建該值的淺拷貝。此方法支持克隆數組,數組緩衝區,布爾值,日期對象,映射,數字,對象對象,正則表達式,集,字符串,符號和類型化數組。它大致基於結構化克隆算法。

用法:

_.clone( value )

參數:此方法接受上述和以下描述的單個參數:

  • value:此參數保存需要克隆的值。

返回值:此方法返回值的淺拷貝。

範例1:克隆簡單對象



const _ = require('lodash'); 
  
var obj = { 
    x:23 
}; 
  
// Shallow copy 
var shallowCopy = _.clone(obj); 
  
console.log('Comparing original with'
    + ' shallow ', obj === shallowCopy); 
  
obj.x = 10; // Changing original value 
  
console.log('After changing original value'); 
  
console.log("Original value ", obj); 
  
console.log("Shallow Copy value ", shallowCopy);

這裏,const _ = require('lodash')用於將lodash庫導入文件中。

輸出:

Comparing original with shallow  false
After changing original value
Original value  { x:10 }
Shallow Copy value  { x:23 }

範例2:克隆複雜對象

const _ = require('lodash'); 
   
var obj = [{  x:1 }, {y:2}]; 
  
// Shallow copy 
var shallowCopy = _.clone(obj); 
   
console.log('Comparing original with shallow ', 
            obj[0] === shallowCopy[0]); 
   
// Changing orignal value 
obj[0].x = 10; 
   
// Values after changing original value 
console.log("After changing original value"); 
   
console.log("Original value ", obj); 
   
console.log("Shallow Copy value ", shallowCopy);

輸出:

Comparing original with shallow  true
After changing original value
Original value  [ { x:10 }, { y:2 } ]
Shallow Copy value  [ { x:10 }, { y:2 } ]

因此,在這裏我們已經看到,更改原始值後,淺拷貝值也發生了變化,因為_.clone()不會深深地複製它隻是通過了引用。

注意:在正常的JavaScript中這將無法正常工作,因為它需要安裝庫lodash。

參考: https://lodash.com/docs/4.17.15#clone




相關用法


注:本文由純淨天空篩選整理自iamsahil1910大神的英文原創作品 Lodash | _.clone() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。