많은 개체와 함수 (개체 메서드)로 구성된 자바 스크립트 응용 프로그램을 개발하고 있습니다. 응용 프로그램의 수명주기에 많은 이벤트를 기록 할 수 있기를 원합니다. 내 문제는 로거 내부에서 어떤 기능이 로그 항목을 호출했는지 알고 싶기 때문에 로그 메시지와 함께 해당 데이터를 저장할 수 있습니다. 즉, 모든 함수가 어떻게 든 자신을 참조 할 수 있어야하므로 해당 참조를 로거에 전달할 수 있습니다. javascript strict 모드를 사용 중이므로 함수 내에 arguments.callee
을 사용하면 안됩니다.자체 구현 내에서 함수를 참조하는 방법은 무엇입니까?
다음은 실행할 수있는 매우 간단한 코드 샘플입니다. 단순화를 위해 내 로거 대신 여기 alert
을 사용하고 있습니다. 첫 번째 경고에
(function(){
"use strict";
window.myObject = {
id : 'myObject',
myFunc : function(){
alert(this.id); // myObject
alert(this.myFunc.id); // myFunc - I don't want to do this. I want something generic for all functions under any object
alert('???') // myFunc
alert(arguments.callee.id); // Will throw an error because arguments.callee in not allowed in strict mode
}
}
myObject.myFunc.id = 'myFunc';
myObject.myFunc();
})();
- -
this
두 번째 I 경고에myFunc
- 에
myObject
아니라 관련은 - 나는대로, 내가하고 싶지 않은 그 이름에 의해 기능을 참조 자체 구현 내에서 함수를 참조하는 일반적인 방법을 찾고 있습니다. - 세 번째 경고 - 아이디어가 열려 있습니다.
- 네 번째 알림 - 내가하지 않으면 작동했을 것입니다.
"use stict";
. 나는 더 나은 성능을 제공하고 엄격한 모드를 유지하기를 원하며 훌륭한 코딩 방법을 구성한다.
모든 의견을 부탁드립니다.
는 "엄격 모드"에 익숙하지 않은 경우,이 그것에 대해 읽기 좋은 장소입니다 : JavaScript Strict Mode
고마워요! 그 멋진 솔루션 :) –