1

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

1 回答 1

2

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

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

于 2013-02-01T12:46:11.793 回答