, 단순히 변수에 해당 객체를 할당하고 문장의 나머지 부분에서 그 변수를 사용
var b : Button = this.buttonExample;
b.buttonMode = true;
b.useHandCursor = true;
b.addEventListener(...);
다른 사람이 언급했듯이 with
문도 있지만 코드를 읽기가 어렵게 만들고 이상한 결과를 초래할 수 있으므로 사용하지 않는 것이 좋습니다.
with (this.buttonExample) {
buttonMode = true;
useHandCursor = true;
addEventListener(...);
}
당신은 물론, 체인 과제와 같은 다른 트릭이 제안을 결합 할 수 있습니다 :
var b : Button = this.buttonExample;
b.buttonMode = b.useHandCursor = true;
b.addEventListener(...);
이 방법으로 매우주의에만 체인 과제에 만나 할당 된 값이 불변 경우 (예 같은 객체가 왼쪽에있는 모든 변수에 할당되므로 , false
, 숫자 및 문자열, 그러나 은 배열 또는 대부분의 다른 객체가 아님).값이 불변 인 경우이 문제가되지 않습니다, 그러나 그것은 변경할 수 있다면 당신은이 예에서 다음과 같이 이상한 결과를 얻을 수 있습니다 a
및 b
모두 을 참조하는지
a = b = [ ];
a.push(1);
b.push(2);
trace(a); // outputs 1, 2
trace(b); // also outputs 1, 2
이 결과에 대한 이유는 같은 배열 및 배열을 변경할 수 있기 때문에 개체에 액세스하는 방법은 중요하지 않습니다, 그것은 여전히 변경됩니다. a
과 b
은 다른 변수이기 때문에 다른 배열을 참조하지 않습니다.
당신은 다음과 같은 것을 할 수 있다고 생각할 수도 있지만, 이 아닌 것은 일 것입니다.
// this will NOT work
var b : Button = this.buttonExample;
(b.buttonMode = b.useHandCursor = true).addEventListener(...);
이 b.buttonMode = b.useHandCursor = true
말을하지만, .addEventListener(...)
가 할당 표현 (예를 들어, b.buttonMode = true
)의 값이 왼쪽 (예를 들어, true
)에를 할당 된 값 점이다 추가하지 작동 이유. 그것에 .addEventListener(...)
을 추가하면 본질적으로 true.addEventListener(...)
이라고 말하면서 분명히 원하는 것은 아닙니다. 즉
b.buttonMode = b.useHandCursor = false;
희망도 일반 위에서 언급 한주의 사항을 확인해야합니다
b.useHandCursor = false;
b.buttonMode = b.useHandCursor;
에 해당합니다.
왜 작동해야합니까? – sharvey
s.harvey에 동의합니다. 당신은 일을 구성하고 작동 할 것이라고 기대할 수 없습니다. – davr