Я создаю веб-приложение в 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 из-за пределов тестовой функции.
Лучшим способом для вашей платформы 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);
Вы можете вернуть функцию и присвоить ее переменной:
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);
Вы не можете вызвать функцию напрямую. Вам нужно будет вернуть его так:
function test() {
return function executeLot(lot1, lot2) {
// [...]
}
}
function test() { //this function won't do anything but create a new function inside. executeLot(lot1, lot2); } function executeLot(lot1, lot2) { //normal function execution; }