이것의 구체적인 값은 호출 모드에 따라 다릅니다. * 메소드 호출 모드: 객체에 바인딩됩니다. * 함수 호출 모드: 전역 객체에 바인딩되며, 웹페이지의 경우 윈도우에 바인딩됩니다. * 생성자 호출 모드: 새로 생성된 객체에 바인딩됩니다. * 이벤트 처리 호출 모드에는 두 가지 경우가 있습니다. 참조* 전역 개체에 바인딩됩니다.
< script type="text/javascript"> function click_handler() { alert(this) // 버튼 DOM 노드에 경고합니다. } function addhandler () { document.getElementById('thebutton').onclick = click_handler } window.onload = addhandler ;button id='thebutton'> ;Click me!
이에 대한 불확실성은 함수 호출 컨텍스트의 변경으로 인해 발생합니다. 이 컨텍스트를 더 명확하게 하기 위해 호출 및 적용 메소드를 사용하여 이 바인딩의 값을 명확하게 할 수 있습니다. call과 Apply의 차이점은 매개변수에만 있습니다. call은 모든 매개변수 목록을 허용하고 Apply는 매개변수 배열 객체를 허용합니다. 이를 통해 Apply 인수를 두 번째 인수로 받아들일 수도 있습니다.
이때입니다. (The method는 ECMA-262의 5판에 추가되었습니다.) Prototype 프레임워크에 처음 등장했습니다(확인되지 않음). 호출 및 적용과 마찬가지로 바인딩도 함수 실행 컨텍스트, 즉 함수가 실행될 때 this 값을 변경합니다. 차이점은 후속 사용을 위해 함수 참조를 반환한다는 것입니다.