【问题标题】:What's the difference between these two JavaScript styles?这两种 JavaScript 样式有什么区别?
【发布时间】:2013-01-30 15:20:38
【问题描述】:

我在 JavaScript 中看到了几种样式。好奇它们在可读性、优化和变量范围方面的区别。优点和缺点将不胜感激。

方法一:

function MyObj(options) {
  this.options = options;
}
MyObj.prototype.getOptions = function() {
  return this.options;
};

方法B:

var MyObj = (function() {
  function MyObj(options) {
    this.options = options;
  }
  MyObj.prototype.getOptions = function() {
    return this.options;
  };
  return MyObj;
})();

有人曾经说过包装器是用于处理 IE 中的命名函数。我注意到,通过放置一个包装器,可以将变量和函数划分为 static 到对象。

但是,我也有很多人抱怨包装效率低下或奇怪。 CoffeeScript 也可以编译为方法 B。那么,在手工编写 JS 时,哪种方法是最佳实践,何时应该使用一种方法而不是另一种方法?

【问题讨论】:

    标签: javascript coding-style


    【解决方案1】:

    第二个是使用模块模式。在这个简化的示例中,没有真正的区别,但对于变量封装,通常应该首选第二个,另外它可以避免不必要地污染全局命名空间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-09
      • 1970-01-01
      • 2020-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-28
      • 1970-01-01
      相关资源
      最近更新 更多