存在這麼乙個物件,對他進行深拷貝
var obj =
};
淺拷貝 :僅僅是指標給了另乙個物件var obj =};
var obj1 = obj;
obj1.name =
'熱心市民王先生'
;//此時,我們對obj1進行改變,檢視obj、obj1
console.
log(obj)
// }
console.
log(obj1)
// }
我們可以發現,原來的obj的name也被改變了,這就是淺拷貝
深拷貝1、通過json實現,會造成方法丟失
var obj =};
var obj1 =
json
.stringify
(obj)
; obj1 =
json
.parse
(obj1)
; obj1.name =
'熱心市民王先生'
console.
log(obj1)
;//
console.
log(obj)
// }
我們可以發現,json方法,沒有改變obj原物件,但是,方法沒有被繼承
2、通過for-in遍歷迴圈,實現
var obj =};
var obj2 =
;for
(var attr in obj)
obj2.name =
'熱心市民王先生'
console.
log(obj2)
;// }
console.
log(obj)
// }
通過for-in遍歷迴圈,新的obj2改變,obj原物件沒有被改變,方法被繼承
3、通過object.assign()
var obj =};
var obj3 =
; object.
assign
(obj1, obj)
; obj3.name =
'熱心市民王先生'
console.
log(obj3)
;// }
console.
log(obj)
// }
通過object.assign(),新的obj3改變,obj原物件沒有被改變,方法被繼承
4、通過…語法繼承
var obj =};
var obj4 =
; obj4=
obj4.name =
'熱心市民王先生'
console.
log(obj4)
;// }
console.
log(obj)
// }
通過…語法,新的obj4改變,obj原物件沒有被改變,方法被繼承 PHP遞迴四種方法
data json data str replace data arr json decode data true print r arr dir foreach arr as k v header content type text html charset utf 8 print r arr p...
執行緒同步四種方法
執行緒同步的方法 1 wait 使乙個執行緒處於等待狀態,並且釋放所持有的物件的lock。2 sleep 使乙個正在執行的執行緒處於睡眠狀態,是乙個靜態方法,呼叫此方法要捕捉 interruptedexception異常。3 notify 喚醒乙個處於等待狀態的執行緒,注意的是在呼叫此方法的時候,並...
隨機排序四種方法
var arr 1,3,4,6,8,9,7 function foo arr return clonearr 返回排序後的值 for var i 0 i 10 i 原理 因為sort排序方法是通過 函式的返回值來進行排序的,1是公升序,1是降序,而隨機數的取值範圍是0 1,所以我們將隨機數 0.5,...