1: Создал объект через конструктор и заменил свойство constructor в прототипе.
function Test(){
this.test = 0;
}
function One(){
this.one = 1;
}
function Two(){
this.two = 2;
}
One.prototype.constructor = Test;
var a = new One;
console.log(a);
Имя объекта по прежнему наследуется от конструктора One. А теперь кое что изменим.
2: Теперь мы переменную a поместим в свойство prototype другому конструктору.
function Test(){
this.test = 0;
}
function One(){
this.one = 1;
}
function Two(){
this.two = 2;
}
One.prototype.constructor = Test;
var a = new One;
Two.prototype = a;
console.log(a);
Здесь видно что имя объекта поменялась на конструктор Test в свойстве constructor, который находиться в прототипе.
3: Еще я заметил, что если создать объект через конструктор в прототип объекта, то он будет менять свое имя относительно своего свойства constructor, но если создать просто как объект в переменную, то почему - то свойства constructor в его прототипе ни как на него не повлияет (самый первый пример этому свидетельствует).
function Test(){
this.test = 0;
}
function One(){
this.one = 1;
}
function Two(){
this.two = 2;
}
function Three(){
this.three = 3;
}
function Four(){
this.Four = 3;
}
One.prototype = new Test;
var a = new One;
a.__proto__.__proto__.constructor = Two;
console.log(a.__proto__.__proto__ == Test.prototype);
console.log(a);
P.S:
1: Заметил закономерность, что как только объект созданный через конструктор становиться чьим - то прототипом, то его имя будет меняться относительно его свойства constructor в прототипе.
Как только мы объект созданный через конструктор поместили в чей - то прототип, то имя объекта в переменной сразу же начало меняться.
2: В это примере оно меняется сразу, ибо создан в прототип другого объекта.
Резюмирую: Это может быть багом консоли или я что - то не понимаю?
Сборка персонального компьютера от Artline: умный выбор для современных пользователей