2017-02-27 4 views
1

myObject이라는 클래스가 있는데,이 중 하나는 add입니다. 나는 어떤 함수에 대해 myObject 함수를 사용하고자하는 다른 함수를 사용하고있다. add을 사용하려면 '추가'를 입력하십시오. 내가 delete을 사용하고 싶다면, '삭제'등을 건네 주겠다. 함수 test의 정의에서 obj.add을 사용하면 잘 작동하지만, 전달 된 파라미터 obj.func을 사용하면 작동하지 않는다. 나는 func = add을 확인하기 위해 테스트했지만 어떤 이유로 그것이 매개 변수로 작동하지 않습니다. 내가 뭘 잘못하고 있는거야?다른 함수에 매개 변수로 함수 이름이 전달되지 않습니다. javascript

testObj = new myObject(); 
test(testObj, 'add', 3); 


function test(obj, func, parm){ 
    var answer = obj.func(parm); 
} 
+2

괄호 표기법 사용 'obj [func] (param)' – elclanrs

답변

2

개체가 자바 스크립트로 작동하기 때문에. obj.func은 ob31에서 func이라는 함수를 실행하려고합니다. 그러나 자바 스크립트의 모든 객체가 함수라는 것을 기억한다면. 그런 다음 이것을 할 수 있습니다 : obj[func] 이것은 funct 변수를 평가하고 평가 된 이름으로 obj에서 메소드를 찾습니다.

testObj = new myObject(); 
test(testObj, 'add', 3); 


function test(obj, func, parm){ 
    var answer = obj[func](parm); 
} 
관련 문제