我有一个问题。我一直在TypeScript(Angular)中使用 this 关键字一段时间,对我来说并不难。我一直在使用带有JavaScript的 this 。我刚刚正常使用它。我读到它取决于上下文。 此 关键字引用包含它的窗口(或对象?)。无论如何,我很好奇所以我进行了测试。一个测试工作,另一个测试没有。
以下是测试
任何人都可以解释原因吗?
测试1
<小时/> 该测试不起作用
var para = document.querySelector('p');
var btn = document.querySelector('button');
var input = document.querySelector('input');
btn.addEventListener('click', onClicked);
function onClicked(){
var value = this.input.value;
this.para.textContent = value;
}
测试2
<小时/> 该测试工作
var input = document.querySelector('input');
var p = document.querySelector('p');
var btn = document.querySelector('button');
btn.addEventListener('click', onClicked);
function onClicked(){
var myInput = input.value;
p.textContent = myInput;
}
我使用'this'关键字作为第一个,但不是第二个。我认为'this'关键字引用了使用'this'之外的范围。如果这是真的(双关语不是意图),那么为什么Test 1没有工作。我只是指全球范围。
谢谢,
Scratch Cat