이 경우 두 개의 객체를 사용하고 두 속성 만 바꾸는 함수를 작성하려고합니다. 그 사람에 대한 내 기능은 다음과 같습니다 :자바 스크립트에서 함수를 사용하여 객체의 두 속성을 바꿔보기
function Person (tall, weight, gender, iq, favoriteColor) {
this.tall = tall;
this.weight = weight;
this.gender = gender;
this.iq = iq;
this.favoriteColor = favoriteColor;
}
var joe = new Person("6-2", 180, "male", 130, "blue");
var bob = new Person("5-11", 150, "male", 120, "red");
그래서 나는 단지 자신의 IQs와 favoriteColor를 교환하고 싶습니다.
function Swap(a, b) {
var i = a;
a = b;
b = i;
console.log(a, b);
}
이것은 분명히 모든 속성을 교환합니다,하지만 난 두를 교환하고 여전히 개체로 로그인이하는 방법을 알아낼 수 없습니다 :
지금까지 내가 가지고있다. 나는 시도했다 :
function Swap(a, b) {
var a = a.iq + a.favoriteColor;
var b = b.iq + b.favoriteColor;
var i = a;
a = b;
b = i;
console.log(a, b);
}
그러나 이것은 콘솔에 반환
120red 130blue.
기술적으로는 두 값을 교환하지만, 객체로 그 구조는 그들이하기로했다 다른 세 가지 속성을 사라하고 그들 자신의 유지도 사라졌습니다. 어떻게 이렇게 스왑 함수를 작성합니까?
감사합니다.
을 할 수 (iq + favoriteColor)를 사용하여 로깅합니다. 이 변수는 매개 변수로 전달 된 변수가 아닙니다. 더 나은 방법은 그것을 다른 것으로 부르는 것입니다 ('var b ... '과 동등 함) – ochi