다음 예제를 고려하십시오.Javascript에서 호출하는 함수의 이름을 얻는 방법은 무엇입니까?
var obj = function(){};
function apply(target, obj) {
if (target && obj && typeof obj == "object") {
for (var prop in obj) {
target[prop] = obj[prop];
}
}
return target;
}
apply(obj.prototype, {
firstFunction: function(){
this.secondFunction();
},
secondFunction: function(){
// how do I know what function called me here?
console.log("Callee Name: '" + arguments.callee.name + "'");
console.log("Caller Name: '" + arguments.callee.caller.name + "'");
}
});
var instance = new obj();
instance.firstFunction();
UPDATE는
두 답변은 정말 최고입니다. 고맙습니다. 그런 다음 객체 내에서 재귀 함수 또는 부모 함수를 호출하는 문제를 조사하고 여기에서 해결책을 찾았습니다. 이렇게하면 arguments.callee/caller 속성을 사용하지 않고 함수 이름을 검색 할 수 있습니다.
이 https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/function
고려해야 할 사항은 무엇입니까? –
'arguments.callee'는'엄격한 모드 '에서 더 이상 사용되지 않고 사용할 수 없다는 것을 알아 두어야합니다. –