var object1 = {
name: "abc",
age: 21
}
var Object2 = function() {}
Object2.prototype = object1;
Object2.prototype.hello = function() {
console.log("Hello");
}
var obj = Object.create(object1);
for (var prop in obj) {
console.log(prop + ": " + obj[prop]);
}
Выход этого кода:Javascript назначая прототип спутанность
name: abc
age: 21
hello: function() {
console.log("Hello");
}
Obj создается путем установки его прототип как object1, который не имеет функцию «привет», так почему в списке в выходе? Если я прокомментирую «Object2.prototype = object1;», функция «hello» больше не будет отображаться на выходе. Я не вижу, как связаны obj и Object2. Кто-нибудь может объяснить, что здесь происходит?
Ох хорошо. Спасибо. Есть ли способ избежать этого? I. Установление Object2.prototype объекту, без которого оба ссылаются на один и тот же объект? – SpamJoe