Конструктор, передача this

Проверка на правильность вызова конструктора Передача this через apply

by Евгений

JavaScript

function Human(name) {
    if (! (this instanceof Human)) {// проверка вызывался ли конструктор правильно - с new
        return new Human(name);
    }
    this.name = name;
}
Human.prototype.say = function(what) {
    return this.name + ' говорит: ' + what;
}
function speaksTo(someone) {
    return this.name + ' говорит с ' + someone.name;
}
var eugene = new Human('Евгений');
var eugenka = Human('Евгения');
console.log(eugene.say('привет'));
console.log(speaksTo.apply(eugene, [eugenka]));