JSオブジェクト
2783 ワード
注意:Javascript入門-コード4級入門コース1
-通常、似たようなオブジェクトを複数作成する場合は、ジェネレータを使用して作成できます.
example)
オブジェクトが変数に割り当てられている場合は、変数が参照されます.デフォルトのタイプが変数に割り当てられている場合は、通常の変数です.通常変数は、値をコピーおよび置換できます. の値のみが格納、他の変数は常に独立して 存在する.
参照変数の動作を理解する
転送値 参照転送
内部で値を変更すると、リファレンス伝達変数は外部オブジェクトの値を変更します.
サンプルとして表示されるオブジェクト
var p1={};
console.log(typeof p1);//Object
p1.name="Jenny";
console.log(p1); //{name:"Jenny"}
p1.name="Jungwon"; //이러면 과연 바뀔까?
console.log(p1);//{name:"Jungwon"} 바뀐다
オブジェクトの作成
var p2={};
p2.name="Jenny";
p2.weight="100";
p2.eat=function(food){
console.log(this.name + "이" + food + "를 먹었습니다.");
this.weight+=1;//this.name, this.weight 객체 자신의 name, weight를 의미
}
JSONシンボルを使用したオブジェクトの作成
var m1={"name":"Jenny",
"hp":100,
"power":50,
"attack": function(target){
target.hp-=this.power;
}
};
m1.attack(m1); //hp:50
作成者を使用したオブジェクトの作成
-通常、似たようなオブジェクトを複数作成する場合は、ジェネレータを使用して作成できます.
example)
let Human = function (name, hp, power) {
this.name=name;
this.hp=hp;
this.power=power;
this.attack=function(target){
target.hp-=this.power;
}
}
このようにジェネレータを作成し、ジェネレータを使用してオブジェクトを作成するときにnewキーを使用します.let m1=new Human("Jenny", 100, 10);
let m2=new Human("Jungwon", 999, 1);
m1.attack(m2);
console.log(m2); // ["Jungwon", 989, 1]
このときm 1は参照変数~参照変数と一般変数
オブジェクトが変数に割り当てられている場合は、変数が参照されます.デフォルトのタイプが変数に割り当てられている場合は、通常の変数です.
let a = 5;
let b = a;
b = 10;
let arr1=[0, 1, 2, 3, 4]; //배열객체를 arr1 참조변수가 참조.
let arr2=arr1; //참조변수가 참조변수를 참조하고있다.
arr1.push(5);
console.log(arr1); //[0, 1, 2, 3, 4, 5]
console.log(arr2); //[0, 1, 2, 3, 4, 5]
console.log(arr1===arr2); //true
TIP)参照変数をオブジェクトの別名として扱う.例えばJenny鄭源鄭順は私ですが、私が太ったらあの3人も太ります.私だから.参照変数とcall by reference
두 코드의 차이를 보자
let foo=function(v){
v=v*2;
console.log(v);
};
let a = 10;
foo(a); //20
console.log(a);//10 a는 여전히 10
let foo=function(ref){
ref.v=ref.v*2;
console.log(ref);
}
let p = {name: "Jenny", v: 90};
foo(p);// {name:"Jenny", v:180}
console.log(p); // {name: "Jenny", v: 180}
値伝達変数は、関数の内部で値を変更しますが、外部では変更されません.内部で値を変更すると、リファレンス伝達変数は外部オブジェクトの値を変更します.
Reference
この問題について(JSオブジェクト), 我々は、より多くの情報をここで見つけました https://velog.io/@wjddnjswjd12/JS-객체テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol