let dadproto =
let sonproto = dadproto;
sonproto.name =
"李四"
; console.
log(sonproto)
;//name: "李四" ,age: 20
console.
log(dadproto)
;//name: "李四" ,age: 20
簡單資料型別–傳值:
let a =10;
let b = a;
b =20;
console.
log(b)
;//20
console.
log(a)
;//10
let dadproto =
}let sonproto =
json
.parse
(json
.stringify
(dadproto));
sonproto.name =
"李四"
; console.
log(sonproto);//
console.
log(dadproto)
;//
這裡會返回乙個新的物件,達成深拷貝的效果
但是這種方式,會丟失function 和 undefined
let obj =
, arr:
, obj2:
}function
deepcopy
(obj)
;for
(let key in obj)
else}}
//最後,將我們檢測賦值後的新物件返回,以此達成新記憶體的目的
return newobj;
}let obj2 =
deepcopy
(obj)
; obj2.name =
"李四"
; console.
log(obj)
;//}
console.
log(obj2)
;//}
fon-in 會遍歷物件和原型上和原型鏈的屬性和方法
但是我們做深拷貝的時候,是不需要原型或者原型鏈上的屬性和方法的
傳值和傳址
在vb中呼叫函式或過程時,傳遞引數有兩種方式 傳址和傳值。其中vb預設為傳址方式,關鍵字byref一般可以省略。byref a as integer 表示引數a以傳址方式傳遞給函式或過程 byval a as integer 表示引數a以傳值方式傳遞給函式或過程 傳址就是把乙個存放資料的記憶體位址傳...
傳值,傳址和傳引用
傳值方式 將實參的值拷貝給函式或方法,在函式內對形參進行操作,操作的物件是實參的拷貝,對實參本身沒有影響,在函式結束返回後,形參被丟棄釋放,實參的內容不會被改變。c 一條基本原則 在預設情況下,引數只能以值傳遞的方式給函式,被傳遞到函式的只是變數的值,永遠不會是變數本身。void exchange ...
傳值 傳址和傳引用
在編寫個人函式的時候,你將受到c 中一條基本原則的限制 在預設的情況下,引數只能以值傳遞的方式給函式。這句話的理解是 被傳遞到函式的只是變數的值,永遠不會是變數本身。舉例如下 include void changeage int age,int newage 如果想要實現計畫功能,需要怎麼改?mai...