这种原型设计模式在功能上有什么不同吗?
var Greeter = function(message) {
this.greeting = message;
return this;
}
Greeter.prototype.greet = function () {
return "Hellos, " + this.greeting;
}相对于:
var Greeter = (function () {
function Greeter(message) {
this.greeting = message;
}
Greeter.prototype.greet = function () {
return "Hellos, " + this.greeting;
};
return Greeter;
}());底层的方法似乎更干净,所以我选择更频繁地使用它,但是我已经看到很多人使用顶级方法。
发布于 2017-01-18 17:18:17
您将注意到,两个示例中的核心逻辑基本相同。因此,这里唯一的区别在于是否允许从全局范围调用函数(类)定义。
在第二个示例中,将逻辑封装在IIFE中具有将函数定义隐藏在全局范围之外的效果,实质上是提供单例行为。
您可能使用的内容可能取决于应用程序的需要。
https://codereview.stackexchange.com/questions/152955
复制相似问题