2013-02-01 48 views
1

我想了解OOP在Javascript中处理的方式,我偶然发现coffescript定义构造函数和原型的方式。 有人能告诉我这是什么代码Javascript OOP&Coffe

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.")); 
}; 

回答

2

第一个例子有一个匿名的自我执行的功能包装的动物对象。

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