我有两个js函数:
function onRegionMouseOver()
{
}
function onRegionMouseOut()
{
}
可以像这样动态调用这些js函数吗?:
var type = 'Out'
//the following line would exec onRegionMouseOut() above:
call(onRegionMouse[type]())
发布于 2017-05-11 22:54:17
您可以使用以下命令:
var onRegionMouseHandlers = {
out: function () {},
in: function () {}
}
// and using like this
var whatToUse = 'in';
// use
onRegionMouseHandlers[whatToUse]()
此外,您还可以删除您的,以选择必须调用的函数。您可以向两个不同的事件添加两个处理程序。
发布于 2017-05-11 22:54:12
您可以将函数定义为对象的属性,使用括号表示法来调用函数。
const methods = {
onRegionMouseOver() {console.log("Over")},
onRegionMouseOut() {console.log("Out")}
}
let fn = "onRegionMouse";
let type = "Out";
methods[`${fn}${type}`]();
type = "Over";
methods[`${fn}${type}`]();
不带模板文字或let
var methods = {
onRegionMouseOver: function onRegionMouseOver() {console.log("Over")},
onRegionMouseOut: function onRegionMouseOu() {console.log("Out")}
}
var fn = "onRegionMouse";
var type = "Out";
methods[fn + type]();
type = "Over";
methods[fn + type]();
发布于 2017-05-11 22:55:43
只要声明一个包含函数的对象,就可以做这样的事情。
var onRegionMouse = {
Out: onRegionMouseOut,
Over: onRegionMouseOver
};
现在你可以只做
var type = 'Out';
onRegionMouse[type]();
https://stackoverflow.com/questions/43926812
复制