我正在学习Angular 2,而且我对'this'关键字感到困惑。请考虑以下代码:
import { Component, OnInit } from '@angular/core';
import { Hero } from '../heroes';
import { HEROES } from '../mock-heroes';
@Component({
selector: 'app-heroes',
templateUrl: './heroes.component.html',
styleUrls: ['./heroes.component.css']
})
export class HeroesComponent implements OnInit {
selectedHero : Hero;
onSelect(hero : Hero) : void{
this.selectedHero = hero;
}
heroes = HEROES;
constructor() { }
ngOnInit() {
}
}
在'onSelect'方法中,为什么我们需要使用'this'关键字来引用'selectedHero'属性?为什么我们不能在没有此关键字的情况下使用'selectedHero'?这个意味着什么呢?
答案 0 :(得分:-1)
您使用“this”绝对确定它是您引用的正确值。
考虑这样的事情(伪代码):
var hello = 0;
function main () {
var hello = 1;
var self = this;
alert(hello)
if(1 < 2) {
var hello = 2;
alert(hello)
alert(self.hello)
}
}
在这里,我们将首先提醒1,然后是2,然后是1.我们可以使用“this”来例如保存对其他范围的引用,或者如果您的命名约定在整个代码中非常相似,则可以使用“this”来简化代码。
在你的具体例子中,我肯定99%肯定如果你使用“this”这种方式并不重要,但在某些情况下这是非常有用的。它似乎只是指类,所以如果你想从类中访问你的类,你可以使用“this”作为一种快速简便的方法来引用它。这是一个自引用变量,如果这对你有意义的话。