我正在使用Javascript MVC创建一个网络应用,其中我有一个如下所示的功能
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 :(得分:1)
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 :(得分:0)
您无法直接调用该功能。你将不得不这样返回:
function test() {
return function executeLot(lot1, lot2) {
// [...]
}
}
答案 2 :(得分:0)
您可以返回一个函数并将其分配给这样的变量:
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);