기능에 대한 속도 테스트를 설정하려고합니다. 함수를 직접 전달할 때 작동하지만 동료에게 자신의 양식을 잘라 내고 붙여 넣을 수있는 양식을 제공하고 싶습니다.
function sendTest() {
//fName, fContent
var fName = document.getElementById("fName").value;
var fContent = document.getElementById("fContent").value;
var f = new Function(fName, fContent);
f.name = fName;
testTime(f);
}
testTime ()은 성능을 평가하는 함수이고 실행 시간을 평가하는 것은 sendTest ()에서 올바르게 작동하지만 testTime ()에서 함수 이름에 액세스하여 결과와 함께 함수 이름을 표시 할 수 없습니다. f.name과 f.fName은 모두 정의되지 않은 것으로 나타납니다.
함수는 객체 죠? 그래서 이름 속성을 적용 할 수 있어야합니까?
이것은 다른 사람이 귀하의 질문을 중복으로 표시 한 것보다 귀하의 특정 문제에 대한 훨씬 더 간단한 답변 인 것 같습니다.
ES6에는 .name
쓸 수없는 Function 의 내장 속성이 있기 때문에 할당 할 수 없습니다 ( 초안 ES6 사양의 특정 섹션에 대한 링크 ). 그렇게하는 방식으로 이름을 할당하려면 다른 속성 이름을 사용할 수 있어야합니다.
다른 속성 이름을 사용한 작업 데모 : http://jsfiddle.net/jfriend00/6PVMq/
f = new Function("log('Hello')");
f.myName = "sayHi";
function testFunc(func) {
log("function name is: " + func.myName);
func();
}
testFunc(f);
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다