JS的淺拷貝與深拷貝
阿新 • • 發佈:2017-09-07
code 有一個 實現 一個 turn fun pan xtend array
淺拷貝
//這樣的拷貝有一個問題。那就是,如果父對象的屬性等於數組或另一個對象,
//那麽實際上,子對象獲得的只是一個內存地址,而不是真正拷貝,因此存在父對象被篡改的可能。
function extendCopy(o) { var copy = {}; for (var i in o) { cppy[i] = o[i]; } return copy; }
深拷貝
//就是能夠實現真正意義上的數組和對象的拷貝。它的實現並不難,只要遞歸調用"淺拷貝"就行了。
function deepCopy(o, copy) { var copy = copy || {};for (var i in o { if (typeof o[i] === ‘object‘) { copy[i] = (o[i].constructor === Array) ? [] : {}; deepCopy(o[i], copy[i]); } else { copy[i] = o[i]; } } return copy; }
JS的淺拷貝與深拷貝