Я новичок в JS.с использованием создания прототипа в Javascript
Я экспериментировал в JSFiddle.
Я создал объект A, а затем создал два новых объекта B и C, как показано ниже.
debugger;
var A = {
name:"h",
lastname:'n',
address:'B'
};
A.getname = function()
{
console.log(this.name);
};
var B = Object.create(A);
var C=new Object();
C.prototype = A;
console.log(B.lastname);
console.log(C.lastname);
A.getname();
B.getname();
C.getname();
Я принял концепцию создания нового объекта с уже существующего объекта с использованием Object.create (старый объект) из JavaScript: хорошая книга частей и концепции наследования объекта от http://www.codecademy.com/courses/objects-ii/3/3?curriculum_id=506324b3a7dffd00020bf661.
После отладки, Но значение value console.log (C.lastname) не определено, а C.getname() дает мне ошибку.
TypeError: C.getname is not a function
Почему это бросает мне ошибку и в чем преимущества использования Object.create() в этом случае.
Возможно преимущество использования 'Object.create' является то, что он делает работу, в то время как ваш' .prototype' код не? – Bergi
Но я думаю, что ответ, который вы действительно ищете, состоит в том, что 'Object.create' - это то, что вы используете для наследования существующего объекта, а' function C() {}; C.prototype = A; 'и' var c = new C(); c.lastname; c.getname() 'имеет преимущество выполнения кода для инициализации экземпляров. – Bergi
@Bergi Я считаю, что проблема (среди прочего) здесь «C.prototype = A», прототип, который он ссылается, не тот, который ему нужен. 'C.constructor.prototype' - это тот, который он ищет. (что я не рекомендую) –