應該是js中object型別和js原型使用過程中的賦值,指標指向問題。(有興趣的可以參考js在「new」物件時的原型系統是怎樣起作用
遇到的問題(將陣列a值賦給b,改變b,a也會改變)
let obj = ;
let copyobj = obj;
copyobj.name = 'fiona';
console.log(copyobj.name); // 'fiona'
console.log(obj.name); // 'fiona'
在js中棧和堆heap)的概念:
當我們宣告乙個物件,由於他不屬於五種基本資料型別(即非簡單資料段
),棧中會存放乙個我們宣告的obj
變數,它指向了堆中實際的這個物件的位址
。當我們把這個引用位址賦值給了copyobj
,實際它獲得的是乙個與obj
一致的指向堆中的位址。當copyojb
改變了指向的物件位址的實際的值的時候,obj
拿到的值也就自然而然變化了。
解決的方法
let obj = ;
let copyfunc = (originobj) => ;
for(let key in originobj)
return copyobj;
};let copyobj = copyfunc(obj);
copyobj.name = 'fiona';
console.log(copyobj.name); // 'fiona'
console.log(obj.name); // 'fiona-sun'
方法二,json解析(也推薦這一種,效率問題)
let obj = ;
let copyobj = json.parse(json.stringify(obj));
copyobj.name = 'fiona';
console.log(copyobj.name); // 'fiona'
console.log(obj.name); // 'fiona-sun'
jquery 管理系統 通用許可權管理系統
通用許可權管理系統 angelrm asp.net mvc 基於 asp.net c mvc 前端 bootstrap ztree lodash jquery 技術,採用 bootstrap 為前台開發展示 ui,web api 主要負責前端的邏輯互動,再結合 jquery ajax web api...
企業通用管理系統(ECSS)
企業通用管理系統 ecss 系統簡介 本系統主要適用於商貿企業,商品保質期較長 庫存採用移動加權平均法的單位。系統集商品進銷存 人員收支費用 人員工資和總會計核算為一體的簡單通用的企業管理系統,即 enterprise currency supervise system 簡稱ecss。軟體架構 vf...
vue人力管理 Vue 員工管理系統
大二暑假進行了兩周vue的入門學習,主要內容就是關於前端的入門學習,在兩周內學習了vue的一些簡單使用 主要就是使用資料的雙向繫結,使用vue進行資料處理,使用bootstrap進行布局搭建,下面是我的 員工管理系統 table 修改刪除 修改員工資訊 員工id 員工姓名 員工薪資 儲存修改 建立v...