Давайте рассмотрим простой пример:
var Person = function(args){
this.init(args);
}
При определении нескольких методов для прототипа человека мы сделаем следующее:
Person.prototype = {
getAge : function(){},
nickname : "R2D2"
};
Или
Person.prototype.getAge = function() {...};
Person.prototype.nickName= "R2D2";
Оба делают одно и то же.Я предпочитаю первую версию, потому что она легче для чтения и требует меньше символов для написания (уменьшая площадь моего кода).
Единственная причина, по которой я могу подумать об использовании
Person.prototype = function(){}
это создать частную область, доступную только для прототипа Person.Но для этого требуется функция, выполняющая себя, которая возвращает объект.
Person.prototype = (function(){
var theAnswerToEverything = 42;
return {
getTheAnswerToEverything : function(){
return theAnswerToEverything;
}
};
})();
переменная theAnswerToEverything будет использоваться только методами прототипа Persons.Более сложные примеры могут быть созданы с использованием того же принципа.