공용 메서드에서 개인 메서드 add
을 동적으로 호출 할 수 없습니다. this
은 공용 범위에만 액세스하는 것 같습니다. 따라서 add
으로 전화를 걸 수 없습니다. 이것을 할 수있는 방법이 있습니까?개체의 전용 함수를 동적으로 호출하는 중
function test()
{
var actionCollection = [];
function add(int1, int2)
{
return int1 + int2;
}
this.callFunc = function(testMethodFunction, methodArguments)
{
this[testMethodFunction].apply(null, methodArguments);//Method 'add' not found.
}
}
var t = new test();
alert(t.callFunc('add', [1,2]));
플러스 나는 null
는 당신은 또한 apply
인수에 this
을 사용할 수 있습니다 고려 할 예정이다 정확히 모르겠어요. apply
의 첫 번째 주장이해야 할 일에 대해 설명해 줄 수 있습니까? 이것은 또한 원래의 질문과 관련이 있기 때문에. 어떤 도움을 주셔서 미리 감사드립니다!
[.apply()] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply) – Andreas
@Andreas 이미 읽었습니다. 그러나 여전히 첫 번째 주장의 목적에 대해 명확하지 않다. – Tek
첫 번째 인수는 함수에서 'this'를 통해 액세스 할 수있는 값을 지정합니다. 'function foo() {console.log ("this.bar ="+ this.bar); } foo.apply ({bar : 5}, null);''this.bar = 5'를 로그 할 것입니다. – Andreas