JavaScriptにおける値伝達と引用伝達
1554 ワード
2018/08/07
まずこの二つの伝達に対する理解を話してください.値転送は、変数の値を別の変数に再コピーします.両者の間には他の関連がありません. 参照転送は、変数がヒープメモリに向けられているポインタを別の変数にコピーします.簡単にいうと、その一つの値が変化し、もう一つは変更されました.(これは私個人の浅はかな理解です.) 値は、JavaScriptの5つの基本データタイプにわたって値によって伝達される. 引用伝達なら、もう一つのObjectのデータタイプはきっと引用によって伝達されました.
2018/08/08
昨日の話を続けます.引用伝達を見たばかりの時は、次のような例だと思いました.
赤い宝の本の中で言います:ECMAScriptの中ですべての関数のパラメーターはすべて値によって伝達したのです.
パラメータ伝達は、基本的なデータタイプと参照データタイプを伝達することができる. は、基本的なデータタイプを転送する際に、転送された値を一部の変数にコピーしたものである. 転送参照データタイプは、転送された値をメモリ内のアドレスにコピーした部分変数 である.
よくあるデモは記録しないで、1つの紅宝の本の中の例を記録します.
まずこの二つの伝達に対する理解を話してください.
let foo = 1
let bar = foo
bar = 2
console.log(foo) // foo = 1
let foo = {
message: 'i am message'
}
let bar = foo
bar.message = 'no, i am text'
console.log(foo) // foo = {message: "no, i am text"}
//彼女が小説を読んで目を全部見ました.本当に頑張ります.2018/08/07 23:192018/08/08
昨日の話を続けます.引用伝達を見たばかりの時は、次のような例だと思いました.
let foo = {
message: 'i am message'
}
let bar = foo
bar = 'no, i am text'
// [ 'no, i am text']
//
console.log(foo) // foo = {message: 'i am message'}
console.log(bar) // bar ='no, i am text'
barが再賦課された時、元々fooを指すポインタが切れたという感じです. , 。
パラメータ転送赤い宝の本の中で言います:ECMAScriptの中ですべての関数のパラメーターはすべて値によって伝達したのです.
パラメータ伝達は、基本的なデータタイプと参照データタイプを伝達することができる.
よくあるデモは記録しないで、1つの紅宝の本の中の例を記録します.
function setName(object) {
object.name = 'Jack'
object = new Object() // , object ,
object.name = 'Owen'
}
let person = new Object()
setName(person)
console.log(person.name)
//彼女は寝ないし、最悪です.毎日彼女を監督します.2018/08/08 23:30