我想调用实例方法,其名称与func
输入元素一起传递,但代码失败,因为它在全局window
中找不到TestClass
个实例方法.我如何才能做到这一点?
class TestClass {
func = document.getElementById('func');
result = document.getElementById('result');
func1 = () => {
this.result.innerHTML = 'func1 called';
};
func2() {
this.result.innerHTML = 'func2 called';
}
funcListener = () => {
window[this.func.value]();
};
constructor() {
this.func.addEventListener('change', this.funcListener);
}
}
new TestClass();
functest.html
<!doctype html>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>functest</title>
</head>
<body>
<input id="func" placeholder="enter function to call: func1, func2" type="text" maxlength="200">
<label id="result" for="func">result</label>
</body>