我试图理解在Javascript中处理OOP的方式,我偶然发现了coffescript定义构造函数和原型的方式。 有人能告诉我这段代码的优点是什么
Animal = (function() {
function Animal(name) {
this.name = name;
}
Animal.prototype.move = function(meters) {
return alert(this.name + (" moved " + meters + "m."));
};
return Animal;
})();
与此相比
function Animal(name) {
this.name = name;
}
Animal.prototype.move = function(meters) {
return alert(this.name + (" moved " + meters + "m."));
};
答案 0 :(得分:2)
第一个示例包含一个包含Animal对象的匿名自执行函数。
在给出的示例中,这不提供额外的封装。 但是通常你可能想要返回一个更复杂的对象,或者依赖于在全局范围内声明的其他变量(这是一件坏事)。