var cont = document.getElementById('rs') var ln = `\n` var line = `\n${'#'.repeat(64)}\n` function doSomething(){} var doAnything = function(){} var doSome = function doSomethingElse(){} var person = { get firstName(){ return "you'r name" }, sayName: function(){ cont.textContent += ln + this.name } } cont.textContent += ln + `doSomething.name: ${doSomething.name} -> ${doSomething}` cont.textContent += ln + `doAnything.name: ${doAnything.name} -> ${doAnything}` cont.textContent += ln + `doSome.name: ${doSome.name} -> ${doSome}` cont.textContent += line cont.textContent += ln + `doSomething.bind().name: ${doSomething.bind().name}` cont.textContent += ln + `(new Function()).name: ${(new Function()).name} -> ${(new Function())}` cont.textContent += line cont.textContent += ln + `person.sayName.name: ${person.sayName.name} -> ${person.sayName}` var descriptor = Object.getOwnPropertyDescriptor(person, "firstName") cont.textContent += ln + `descriptor.get.name: ${descriptor.get.name} -> ${descriptor.get}`
<p> 어떤 함수의 name값이 같은 이름의 함수를 나타내진 않는다. name 프로퍼티는 디버깅을 돕기 위한 정보를 주는 것을 뿐 name값을 사용해 함수의 참조를 얻는 방법은 없다. </p> <pre id="rs"></pre>