Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Почему не работает конструктор (https://javascript.ru/forum/misc/53923-pochemu-ne-rabotaet-konstruktor.html)

Sinhrofazathron 24.02.2015 12:10

Почему не работает конструктор
 
При создании объекта класса с использованием конструктора объект не создается вообще.
var  Person = {
    constructor : function (name, age, gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    },
    greet : function(){
        document.write("Hi, my name is " + this.name);
    }
};
var person = Object.create(Person);
document.write(Person.isPrototypeOf(person));// true
var second_person = Object.create(Person).constructor("Fedor", 30, "male");
document.write(Person.isPrototypeOf(person));// false

tsigel 24.02.2015 14:30

Sinhrofazathron,
А кто вам сказал что так надо создавать экземпляры класса?
var  Person = function Person(name, age, gender) {
    this.name = name;
    this.age = age;
    this.gender = gender;
};
Person.prototype.greet = function() {
     alert("Hi, my name is " + this.name);
};

var person1 = new Person("Вася", 10, "male");
var person2 = new Person("Васелиса", 15, "female");

person1.greet();
person2.greet();

(person1 instanceof Person) // true
(person2 instanceof Person) // true


Часовой пояс GMT +3, время: 04:13.