Выполнить функцию, которая находится внутри другой функции Javascript

1

Я создаю веб-приложение в MVC с Javascript, в котором у меня есть функция, которая выглядит следующим образом:

function test() {
   //this function won't do anything but create a new function inside.
     function executeLot(lot1, lot2) {
       //normal function execution;
     }
}

теперь я хочу вызвать функцию executeLot(1,2) но я не могу назвать это, поскольку он находится внутри test()

что я могу сделать, чтобы вызвать executeLot из-за пределов тестовой функции.

  • 0
    Вы можете легко реализовать таким способом. function test() { //this function won't do anything but create a new function inside. executeLot(lot1, lot2); } function executeLot(lot1, lot2) { //normal function execution; }
  • 0
    Дайте больше объяснения! Вы использовали эту функцию только как простой метод?
Теги:
function

3 ответа

2
Лучший ответ

Лучшим способом для вашей платформы MVC является система на основе модели класса, а не глобальные методы или процедурный код.

См. Пример:

//////////////////////////////////////////////////////////
// Class Definition ECMA 5 - works on all modern browsers 
//////////////////////////////////////////////////////////

function Test() {

     this.executeLot = function(lot1, lot2) {
       //normal function execution;
       console.log(lot1 + " <> " + lot2)
     }
     
}

//////////////////////////////////
// Make instance from this class
//////////////////////////////////

var myTest = new Test();

//////////////////////////////////
// Call method
//////////////////////////////////
myTest.executeLot(1,1);
1

Вы можете вернуть функцию и присвоить ее переменной:

function test(){
    return function(arg1,arg2){
        // do your magic here
    }
}

var executeLoot = test();
//Call your returned function
var arg1 = 1;
var arg2 = 2;
executeLoot(arg1,arg2);
0

Вы не можете вызвать функцию напрямую. Вам нужно будет вернуть его так:

function test() {
  return function executeLot(lot1, lot2) {
    // [...]
  }
}
  • 0
    для тряски Бога нет нет нет
  • 0
    @ManosKounelakis Полагаю, вы говорите о последней версии? Да, это довольно некрасиво, и я, вероятно, должен удалить это. Или вы имеете в виду что-то еще?
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню