_.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
相關用法
- Lodash _.take()用法及代碼示例
- Lodash _.xor()用法及代碼示例
- Lodash _.nth()用法及代碼示例
- Lodash _.fromPairs()用法及代碼示例
- Lodash _.remove()用法及代碼示例
- Lodash _.head()用法及代碼示例
- Lodash _.castArray()用法及代碼示例
- Lodash _.cloneDeep()用法及代碼示例
- Lodash _.differenceWith()用法及代碼示例
- Lodash _.sortedLastIndex()用法及代碼示例
- Lodash _.pullAll()用法及代碼示例
- Lodash _.pull()用法及代碼示例
- Lodash _.takeRight()用法及代碼示例
- Lodash _.pullAt()用法及代碼示例
- Lodash _.find()用法及代碼示例
- Lodash _.zipWith()用法及代碼示例
- Lodash _.zipObject()用法及代碼示例
- Lodash _.sampleSize()用法及代碼示例
注:本文由純淨天空篩選整理自iamsahil1910大神的英文原創作品 Lodash | _.clone() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。