현재 더 큰 개체를 만들고 있으며 디버깅/검사/값/결과 반환과 함께 더욱 빠르고 구체적인 작업이 필요합니다. 자바 스크립트 개체 메서드 이름을 얻는 방법?
지금 나는 다음과 같은 생각이 나를 단순히 하나의 함수 이름으로 객체 VARdebug
를 정의 만이 부분을 로그인 할 수 있도록 할
var myObject = {
whatever: null,
whereever: null,
debug: false,
someFunction: function(arg) {
// General - would output *all* logs for all object functions.
// if (true === myObject.debug)
// console.log('FunctionNameHere', arg);
// More specific - would output *only* the log for the currently targeted function
if ('FunctionName' === myObject.debug)
console.log('FunctionNameHere', arg);
},
};
.
유일한 문제는 다음과 같습니다. FunctionName
/someFunction
은 어떻게 얻을 수 있습니까?
Sidenotes :
console.log(arguments.callee);
나에게 전체 기능 소스를 제공합니다.console.log(arguments.callee.name);
이 비어 있습니다. 나는 전체 개체의 로그에 대해 살펴 경우console.log(arguments.callee.toString());
반환console.log(arguments.caller);
반환undefined
을 비우, 나는 prototype.name="Empty"
등을 참조하십시오. 따라서 직접 객체 밖으로 가져올 기회가 없습니다.
감사합니다.
그래서 일반적으로 말하자면 - 디버그가 'true'라면, myObject 함수가 실행될 때 함수 이름 + 인수를 가진 콘솔을 로깅하고 싶습니까? – kubetz
@dzejkej 정확하지 않습니다. 함수 이름에'debug'를 설정하면 똑같은 이름의 fn의'log'만이 트리거됩니다. 이렇게하면 각 함수에 디버그를 빌드하고 필요할 때만 트리거 할 수 있습니다. – kaiser
내 대답에는 하드 코딩없이 요구 사항에 맞는 코드가 포함되어 있습니다. 너무 진보적이지만 희망을 갖고이 흥미로운 언어를 연구하도록 동기를 부여합니다 : P. – kubetz