应该在javascript中支持"_this"而不是"self"吗?



在《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

最新更新