如何从函数的外部范围使用变量。我在这里创建了这个简单的例子
var view = {
init(){
const targetOne = document.querySelector(".targetOne");
const targetTwo = document.querySelector(".targetTwo");
var val = "outer scope";
targetOne.addEventListener('click', (e) => {
console.log('target one', val)
});
targetTwo.addEventListener('click', this.handleEvent);
},
handleEvent(e) {
console.log('targetTwo ', val);
}
}
view.init();
JS小提琴链接:https://jsfiddle.net/jr7b521x/50/
对于targetOne回调,我可以使用变量val,但是当我为targetTwo回调定义函数时,该变量val不在范围内定义。我觉得这里缺少一些非常简单的东西,我刷新了作用域链接和闭包,但是我无法获得
答案 0 :(得分:0)
变量val在init()函数的范围内
要在handleEvent函数中获取它,您将需要通过参数传递它,或者它必须是视图对象的属性