Почему я не могу вызвать прототипный метод в Javascript?

jsFiddle Demo

У меня есть F, который наследует от Shape.

F.prototype = Shape.prototype;

F создает новый метод с именем test.

F.prototype.test = function(){return 'test';};

Я понимаю, что если я напишуF.prototype = Shape.prototype; все методы, которые я создаю в F, будут доступны другому классу, наследующему от Shape.

Что я сделал не так?

Почему я получаю ошибки при выполнении кодаalert(B.test());?

function Shape(){}
Shape.prototype.name = 'shape';
Shape.prototype.toString = function() {return this.name;};

var F = function(){};
F.prototype = Shape.prototype;
F.prototype.test = function(){return 'test';};


function Triangle(side, height) {
this.side = side;
this.height = height;
}

Triangle.prototype = new F();
Triangle.prototype.constructor = Triangle;
Triangle.prototype.name = 'Triangle';

var my = new Triangle(5, 10);
alert(my.toString());

var Second_class = function(){};
Second_class.prototype = Shape.prototype;
B.prototype = new Second_class();
alert(B.test());

в этом примере, когдаF который наследует отShape а такжеTriangle создан изF Демоверсия jsFiddle хорошо проснулась

Ответы на вопрос(1)

Ваш ответ на вопрос