Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在JAVScript中调用随机函数_Javascript - Fatal编程技术网

Javascript 在JAVScript中调用随机函数

Javascript 在JAVScript中调用随机函数,javascript,Javascript,我的代码如下所示: var MyObj = { run: function() { //random function var fncRun = this.listFnc[Math.floor(Math.random()*this.listFnc.length)]; //call function this.fncRun(args1, args2); }, fnc1: function() { console.log('run wi

我的代码如下所示:

var MyObj = {
   run: function() {
    //random function
     var fncRun = this.listFnc[Math.floor(Math.random()*this.listFnc.length)];
    //call function
     this.fncRun(args1, args2);
   },
   fnc1: function() {
     console.log('run with function 1');
   },
   fnc2: function(args1) {
     console.log('run with function 2');
   },
   fnc3: function(args1, args2) {
     console.log('run with function 3');
   },
   listFnc: new Array("fnc1","fnc2","fnc3"),
};

MyObj.run();
this[fncRun](args1, args2);
但不工作,这是错误:

Uncaught TypeError: undefined is not a function.

有人能帮我吗?

您不能使用
此.variable
调用存储在变量中的方法名。JavaScript无法判断您是要调用名为
variable
的方法,还是要调用名称存储在变量中的方法。您需要
此[变量]

 this[fncRun](args1, args2);

不能使用
this.variable
调用存储在变量中的方法名。JavaScript无法判断您是要调用名为
variable
的方法,还是要调用名称存储在变量中的方法。您需要
此[变量]

 this[fncRun](args1, args2);

不能使用
this.variable
调用存储在变量中的方法名。JavaScript无法判断您是要调用名为
variable
的方法,还是要调用名称存储在变量中的方法。您需要
此[变量]

 this[fncRun](args1, args2);

不能使用
this.variable
调用存储在变量中的方法名。JavaScript无法判断您是要调用名为
variable
的方法,还是要调用名称存储在变量中的方法。您需要
此[变量]

 this[fncRun](args1, args2);

您有两个问题需要解决:

1:运行函数中的args1和args2未定义;添加到运行函数

run: function(args1, args2) {
}
2:
var fncRun
是函数的名称,按如下方式检索函数:

var MyObj = {
   run: function() {
    //random function
     var fncRun = this.listFnc[Math.floor(Math.random()*this.listFnc.length)];
    //call function
     this.fncRun(args1, args2);
   },
   fnc1: function() {
     console.log('run with function 1');
   },
   fnc2: function(args1) {
     console.log('run with function 2');
   },
   fnc3: function(args1, args2) {
     console.log('run with function 3');
   },
   listFnc: new Array("fnc1","fnc2","fnc3"),
};

MyObj.run();
this[fncRun](args1, args2);
新运行函数():


您有两个问题需要解决:

1:运行函数中的args1和args2未定义;添加到运行函数

run: function(args1, args2) {
}
2:
var fncRun
是函数的名称,按如下方式检索函数:

var MyObj = {
   run: function() {
    //random function
     var fncRun = this.listFnc[Math.floor(Math.random()*this.listFnc.length)];
    //call function
     this.fncRun(args1, args2);
   },
   fnc1: function() {
     console.log('run with function 1');
   },
   fnc2: function(args1) {
     console.log('run with function 2');
   },
   fnc3: function(args1, args2) {
     console.log('run with function 3');
   },
   listFnc: new Array("fnc1","fnc2","fnc3"),
};

MyObj.run();
this[fncRun](args1, args2);
新运行函数():


您有两个问题需要解决:

1:运行函数中的args1和args2未定义;添加到运行函数

run: function(args1, args2) {
}
2:
var fncRun
是函数的名称,按如下方式检索函数:

var MyObj = {
   run: function() {
    //random function
     var fncRun = this.listFnc[Math.floor(Math.random()*this.listFnc.length)];
    //call function
     this.fncRun(args1, args2);
   },
   fnc1: function() {
     console.log('run with function 1');
   },
   fnc2: function(args1) {
     console.log('run with function 2');
   },
   fnc3: function(args1, args2) {
     console.log('run with function 3');
   },
   listFnc: new Array("fnc1","fnc2","fnc3"),
};

MyObj.run();
this[fncRun](args1, args2);
新运行函数():


您有两个问题需要解决:

1:运行函数中的args1和args2未定义;添加到运行函数

run: function(args1, args2) {
}
2:
var fncRun
是函数的名称,按如下方式检索函数:

var MyObj = {
   run: function() {
    //random function
     var fncRun = this.listFnc[Math.floor(Math.random()*this.listFnc.length)];
    //call function
     this.fncRun(args1, args2);
   },
   fnc1: function() {
     console.log('run with function 1');
   },
   fnc2: function(args1) {
     console.log('run with function 2');
   },
   fnc3: function(args1, args2) {
     console.log('run with function 3');
   },
   listFnc: new Array("fnc1","fnc2","fnc3"),
};

MyObj.run();
this[fncRun](args1, args2);
新运行函数():


值得注意的是@meagar的回答上面的代码会失败,因为
args1
args2
不存在。为什么我们一直看到
new Array()
?值得注意的是@meagar的回答上面的代码会失败,因为
args1
args2
不存在。为什么我们一直看到
new Array()
?值得注意的是@meagar的答案上面的代码将失败,因为
args1
args2
不存在。为什么我们一直看到
新数组()
?值得注意的是,在@meagar的回答之上,此代码将失败,因为
args1
args2
不存在。为什么我们一直看到
新数组()