1) Все должно быть на своем месте, разложено по полочкам, это основа JavaScript кода. Оправдывается это тем, что над кодом могут работать несколько человек и если у каждого будет свой бардак, то в итоге кто-то может сделать вот так:
function getName(){...} //вы объявили функцию
//code
//code
function getName(){..} //Еще какой-то господин объявил функцию
//Что в итоге? -Объявлена будет вторая.
2) Статичные свойства объекта принято выносить в его прототип, так как создавать множество объектов с идентичным методом
getName - глупо, только память забивать.
И если и уподобляться первому варианту, то так:
function Person (name, age) {
this.name = name;
this.age = age;
}
Person.prototype.getName = getName;
function getName() {
return this.name;
};
var Mike = new Person('Mike', 24);
var John = new Person('John', 30);
Mike.getName === John.getName;// true