在《Airbnb JavaScript风格指南》中,他们提到"保存对此使用的引用时_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"的原因吗?
这只是个人喜好。然而,最好在项目的代码库中只使用一个选项。所以不要在一个函数块中使用_this,然后在另一个函数中使用that或self。。
正如其他人所指出的,这纯粹是一种编码风格偏好。我想提出一个建议:如果您的团队的代码库有兴趣继续为this
使用词法范围,那么可以考虑使用ES6的胖箭头函数,以避免创建不必要的变量。
当然,这完全取决于您的项目是否准备好实现ES6功能。
我不会使用self
,因为它已经被用作指向window
对象的另一个指针。如需将self
用作变量的示例(无需将其前缀为window.self
),请参见此处(下页):https://developer.mozilla.org/en/docs/Web/API/Window/self