我正在从tutorial阅读AngularJS。我不知道为什么他们使用'this'关键字声明新变量。没有那个新的关键字,我们可以使用'this'而不需要新的变量(self)。
function TestCtrl() {
var self = this;
self.people = [
{
name: "Eric Simons",
born: "Chicago"
},
{
name: "Albert Pai",
born: "Taiwan"
},
{
name: "Matthew Greenster",
born: "Virginia"
}
];
}
angular.module('app', [])
.controller('TestCtrl', TestCtrl);
有什么不同吗?
答案 0 :(得分:0)
this
的上下文会根据您使用它的位置而发生变化。
controller('myController', function() {
var a = this;
$myElement.each(function(){
var b = this;
})
})
在上面的例子中,this
在他们使用的地方的背景是不同的。
有时可能需要保存对this
的引用,以便在其他地方使用它。
答案 1 :(得分:0)
在您为变量分配this
所提供的示例中,没有必要,但通常是按惯例完成的,因为它可以提高代码的可读性。
this
引用的对象根据其使用范围而变化。通过将其分配给特定范围内的变量,可以固定该对象,以便可以在子范围中引用它。
您没有使用任何子范围,因此您可以直接引用this
来逃避。