是否可以通过选择将“后缀”附加到javascript函数?

时间:2018-08-01 17:39:15

标签: javascript function select

我不知道这到底是什么,甚至可能。但基本上我想将内容添加到“不完整”方法中。例如。

captureDog =()=>{
  alert('caught dog');
}

captureCat =()=>{
  alert('caught cat');
}

<select id="pet">
   <option value="Cat">cat</option>
   <option value="Dog">dog</option>
</select>

基本上,我有一大堆捕获方法(我将自己用硬代码编写它们,或者创建另一个创建它们的方法)。我想根据选择的值(作为方法的后缀)在本质上调用其他方法。我有一些伪代码,试图做下面我要说的。

var selectField = document.getElementById("pet");
selectField.addEventListener("onchange", "capture"+ selectField.value ="()");

最好只用普通的javascript来做到这一点。

编辑:语法 EDIT2:固定箭头功能

1 个答案:

答案 0 :(得分:2)

我认为是这样的:

var selectField = document.getElementById("pet");

let X = {
    cat: function(){
    console.log("cat 123")
  },
    dog: function(){
    console.log("dog 123")
  }
}

selectField.addEventListener("change", x => {
let val = x.target.options[x.target.selectedIndex].value

X[val]();

});

提琴:https://jsfiddle.net/5rnke6zy/10/