'this'关键字JavaScript

时间:2017-05-03 13:53:05

标签: javascript angular this keyword

我有一个问题。我一直在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

0 个答案:

没有答案