로깅 목적으로 요소 함수 속성에 대한 래퍼 함수를 만들었습니다.호출 된 함수의 현재 요소 속성 이름에 액세스하는 방법
functionsWrapper: function() {
for (i = 0, args = new Array(arguments.length); i < arguments.length; i++) {
args[i] = arguments[i];
}
console.log('call for ' + arguments.callee.name + ' with params ' + argumantsLog(args));
return this['original' + arguments.callee.name].apply(this, args);
}
그리고 나는 요소의 기능을 래핑하는이 코드를 사용하고 있습니다 : 래퍼 기능 이상입니다
logFunctionsCalls: function (element) {
if (!element)
return;
if (element.children && element.children.length)
for (var i = 0; i < element.children.length; i++)
logFunctionsCalls(element.children[i]);
if (!element.functionsLogged) {
element.functionsLogged = true;
for (var property in element) {
if (typeof element[property] != 'function')
continue;
element['original' + property] = element[property];
element[property] = functionsWrapper;
}
}
}
내 문제는 arguments.callee
가의 속성 이름없이 functionsWrapper
코드가 포함되어 있다는 것입니다 호출 된 함수.
'arguments.callee.name'? 그것은 비추천이고 비표준 속성 하나입니다. 둘 다 실제로 도움이되지 않습니다. – Bergi