Это мой код
function Otaku (name, age) {
this.name = name;
this.age = age;
this.habit = 'Games';
}
Otaku.prototype.strength = 60;
Otaku.prototype.sayYourName = function () {
console.log('I am ' + this.name);
}
function newTest() {
const obj = {}
const ctu = [].shift.call(arguments)
obj.__proto__ = ctu.prototype
ctu.apply(obj, arguments)
return obj
}
function objectFactory() {
const obj = Object.create(null)
Constructor = [].shift.call(arguments);
obj.__proto__ = Constructor.prototype;
Constructor.apply(obj, arguments);
return obj;
};
let test = objectFactory(Otaku,'test1',11)
let test2 = newTest(Otaku,'test1',11 )
console.log(test.__proto__ === Otaku.prototype, test instanceof Otaku, test.__proto__.Constructor)
console.log(test2.__proto__ === Otaku.prototype, test2 instanceof Otaku, test2.__proto__.Constructor)
Но результат неожиданно
true false undefined
true true undefined
Я думаю, что "test instanceof Otaku" должен возвращать TRUE, но результат равен FALSE, поэтому яСравните разницу между «test. proto » и «Otaku.prototype», результатом которых является ИСТИНА. Думаю, причина нулевая, но я не понимаю, мне нужна помощь