在Airbnb JavaScript Style Guide中,他们提到“保存对此使用的引用_this。”
// bad
function() {
var self = this;
return function() {
console.log(self);
};
}
// bad
function() {
var that = this;
return function() {
console.log(that);
};
}
// good
function() {
var _this = this;
return function() {
console.log(_this);
};
}
然而,我读过几本提到“自我”的书很好。就像AngularJS: Up and Running一样。
<script type="text/javascript">
angular.module('notesApp', []).controller('MainCtrl', [function () {
var self = this;
self.message = 'Hello ';
self.changeMessage = function () {
self.message = 'Goodbye';
};
}]);
</script>
那么,任何人都可以告诉我使用“_this”而不是“self”的原因吗?
答案 0 :(得分:1)
这只是个人偏好。但是,最好只在项目的代码库中使用一个选项。所以不要在一个功能块中使用_this,然后在另一个功能块中使用_this ..
答案 1 :(得分:1)
正如其他人所指出的,这纯粹是一种编码风格偏好。我会提出一个建议:如果您的团队代码库有兴趣继续使用词法范围 this
,那么请考虑使用 ES6 &# 39; s fat arrow的功能是避免创建不必要的变量。
这当然取决于您的项目是否已准备好实施ES6功能。
答案 2 :(得分:0)
我不会使用self
,因为它已经被用作另一个指向window
对象的指针。请参阅此处(部分向下),了解使用self
类似变量的示例(无需将其作为window.self
作为前缀):https://developer.mozilla.org/en/docs/Web/API/Window/self