我已经在 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 中的命名函数。我注意到,通过放置一个包装器,可以划分对对象来说是静态的变量和函数。
然而,我也有很多人抱怨包装效率低下或奇怪。CoffeeScript 也可以编译成方法 B。那么,当手工编写 JS 时,最佳实践是什么?什么时候应该使用一种方法而不是另一种方法?