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
不存在。为什么我们一直看到新数组()
?