傳值和傳址

2021-10-02 11:42:00 字數 1254 閱讀 2272

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...