Javascript OOP&咖啡

时间:2013-02-01 12:39:43

标签: javascript oop coffeescript

我试图理解在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."));
};

1 个答案:

答案 0 :(得分:2)

第一个示例包含一个包含Animal对象的匿名自执行函数。

在给出的示例中,这不提供额外的封装。 但是通常你可能想要返回一个更复杂的对象,或者依赖于在全局范围内声明的其他变量(这是一件坏事)。