2017-12-08 12 views
1

함수 내에 "전자 메일"키 이름을 어떻게 얻을 수 있습니까? 특별한 컨텍스트 변수가 있나요?javascript 객체의 속성에서 키 이름 가져 오기

도움 주셔서 감사합니다.

var user = { 
 
    "email": function() { 
 
    // How can I get the name of the key (email) inside the function ? 
 
    } 
 
}

+0

는 정말 열심히 그것을 코딩없이 함수의 이름/키를 알 수있는 방법은 없습니다. – epascarello

+1

예, 불행히도 익명 함수는 익명입니다. –

답변

0

나는 질문을하여 답변합니다. 이 시나리오 고려 : 이제

let myFunc = function(){ /* somehow returns the name */ }; 

let a = { 
    funcA: myFunc 
}; 

let b = { 
    funcB: myFunc 
}; 

을,이 사항을 고려하십시오

a.funcA(); 
b.funcB(); 

그들은 무엇을 반환해야합니까? myFunc, funcA 또는 funcB? 대답은 "그것은 이해가되지 않는다"입니다.

당신이하려는 것은 불가능한 이유입니다. 함수는 다른 객체에 의해 "소유"될 수 있습니다.

1

relatively new feature of JS은 초기에 할당 된 변수 또는 속성을 기반으로 익명의 함수 표현식에 이름을 할당합니다.

당신은 당신이 다른 곳에 복사 기능을한다면, 그것은 새로운 이름을 얻을 수 없습니다, 물론 arguments.callee.name

var bar = { 
 
    baz: function() { 
 
    console.log(arguments.callee.name); 
 
    } 
 
} 
 

 
bar.baz();

을 통해 함수의 이름에 액세스 할 수 있습니다. 이름은 생성 될 때 부여됩니다.

var bar = { 
 
    baz: function() { 
 
    console.log(arguments.callee.name); 
 
    } 
 
} 
 

 
bar.foo = bar.baz; 
 

 
bar.foo();

+0

팁 주셔서 감사하지만 arguments.callee.name에 대해서는 사용되지 않습니다. – devistar