все банально. смотрите на эту строчку кода:
var One = Object.create(Person).constructor("Alex", 32);
чему будет равна переменная One? она будет равна тому, что вернет метод
.constructor()
. а что он возвращает? ничего. а точнее undefined. когда функция явно ничего не возвращает, она возвращает undefined. поэтому строчка кода выше, эквивалента строчке:
var One = undefined
а ваш метод constructor на самом деле сейчас выглядит вот так:
constructor: function(name,age){
this.name=name;
this.age=age;
return undefined
}
Что означает конструкция return this?
означет, что функция возвращает текущий контекст. контекстом в данном случае будет являтся объект, созданный с помощью
Object.create()