javascript - 这两种 JavaScript 样式有什么区别?

标签 javascript coding-style

我见过 JavaScript 中的几种样式。想知道它们在可读性、优化和变量范围方面的区别。赞成和反对将不胜感激。

方法一:

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

方法二:

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

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

然而,我也遇到过很多人提示包装效率低下或奇怪。 CoffeeScript 也编译为方法 B。那么,当手动编写 JS 时,哪种方法是最佳实践,什么时候应该使用一种方法而不是另一种方法?

最佳答案

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

关于javascript - 这两种 JavaScript 样式有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14607404/

相关文章:

javascript - 使用递归的一维数组迭代

javascript - 重新使用具有不同 "view models"的 EXTjs View

javascript - FP中如何引用当前状态?

Python 尝试 block 大小

javascript - PhantomJS 的 Karma-grunt 测试用例失败

javascript - Discord Bot 无需命令即可发送消息

vb.net - Visual Basic .NET 中多行 IF 语句缩进的编码风格

vb.net - 声明 bool 值时分配默认值与使用 if 语句的两个子句?

Android HoneyComb DatePicker 文本颜色

java - 干净的代码——如何设计这个类?