OOP JavaScript

by Ivan Gerasimenko

JavaScript

var User = function(name, age) {
    this.name = name;
    this.age = age;
};

User.get = function() {
    console.log('get user');
    return new User('Peter', 26);
};

User.prototype.rename = function(newName) {
    this.name = newName;
};

var ivan = new User('Ivan', 28);

console.log('ivan.age: ' + ivan.age);
console.log('ivan.name: ' + ivan.name);
console.log("ivan.rename('iivan');");
ivan.rename('iivan');
console.log('ivan.name: ' + ivan.name);

var user = User.get(); // has method
console.log(user);
// console.log('ivan.get(); --> ' + ivan.get()); // --> nomethod
// User.rename(); // --> there is no method

var Document = function(id, type, name) {
    this.id = id;
    this.type = type;
    this.name= name;
};

var doc1 = new Document(1, 'Memorandum', 'Xxxxxxxxxxx1');

console.log('doc1 id: ' + doc1.id);
console.log('doc1 name: ' + doc1.name);

Document.prototype.rename = function(newname) {
    this.name = newname;
};

doc1.rename('Yyyyyyyyyyy1');
console.log('doc1 name: ' + doc1.name);