2012-01-27 2 views

답변

12

ECMAScript (AS가 파생 된 것)와 마찬가지로 첫 번째 매개 변수를 통해 "this"컨텍스트를 지정할 수 있습니다.

Function.call 설명서를 참조하십시오. 함수에 대한 설명과 메서드 – 또는 "bound functions" – 및 예제를 참고하십시오. 주어진

, 그런 다음

function f():* { return this; } 
var x:Object = {f: f}; 

는 :

f.call(x)

x.f()x에있는 동안 f()하지 않습니다이이 같은 다른 "이"(대신 Global로 평가)을 평가한다.

(매개 변수 없음)을 사용하는 경우 "this"는 NaN이고 위에 설명한대로 f()은 "this"로 Global입니다. 테스트 코드에서 trace(this)을 사용하면보다 유용한 문맥 정보를 얻을 수 있습니다.

해피 코딩.

2

참고 또한 .call() 메소드는 잭슨 던스하여이 연구에 따르면, 약 10 배 느린 것 같다 : http://jacksondunstan.com/articles/912

+1

크리스를 사용할 수있는 몇 가지 상황에 대한 자세한 내용은이 문서 밖으로

확인, 당신은 아마 전체 답변이 링크에있는 답변으로 StackOverflow에 의해 찌푸리게하는 기사를 요약한다 제거 될 수 있습니다. –

+0

새내기를 교육 해 주셔서 감사합니다. 또한 내 게시물은 pst의 아주 좋은 답변을 보완하기위한 것이었지만 그의 대답에 대해서는 언급 할 수 없었습니다. – Chris

1

실제적인 차이는 당신이 주변에 기능을 전달하는 경우에 와서 당신은 동적으로 사용하려면 apply()가 더 많이 사용되는데, 이것은 당신이 당신의 인자 목록을보다 동적으로 구성 할 수 있기 때문이다. 이러한 방법 http://www.developria.com/2010/12/functional-actionscript-part-1.html

관련 문제