Я не могу динамически вызвать частный метод 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
должен делать учитывая, что вы можете также использовать this
в apply
аргумента. Могу ли я также уточнить, что должен делать первый аргумент 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