javascript之克隆

这个随笔的来源于这样一个应用场景:用户点击table中的row能够修改当前row的数据,并且可以选择保存或是取消;后台提供两个接口---getTable数据和putRow修改数据;我们如何用vue+element-ui实现?在我的思路中,关键点是克隆一个当前table数据,如果用户取消修改,我能够将被修改的row数据还原。(不选择给row数据克隆副本)

while,也许这也不是最佳实践。

基本类型克隆

var m = 1;
var b = m
b //1
m = 2
b //1

引用类型克隆

var a = [1,2,3]
22:21:01.801 undefined
22:21:12.802 k=a
22:21:12.839 (3) [1, 2, 3]
22:21:22.770 k.push(1)
22:21:22.795 4
22:21:26.082 a
22:21:26.112 (4) [1, 2, 3, 1]

a被改变了,这可不是我需要的。

简单的,var d = a.slice(0),或是 

var d = Object.assign([],a)
d //[1, 2, 3, 1]
a.push(3) //5
d //[1, 2, 3, 1]

 在ECMAScript 2016,2017,和2018中新增功能里也提过使用

const ElectricCar2 = Object.defineProperties({}, Object.getOwnPropertyDescriptors(Car));

做深拷贝。

新的语言特性让Fronter从繁复的工具封装中解脱了,而更专注于页面交互逻辑。点赞(☆w☆)

原文地址:https://www.cnblogs.com/Merrys/p/9038498.html