метод call не делает наследования, он всего лишь добавляет те свойства которые были указаны в первой функции, но прототип не трогается, а при наследовании прототип должен быть тронут
function Game() {
this.canvas = true;
};
Game.prototype = {
canvas : null,
play : function () {
alert("play");
}
};
function Player() {
Game.call(this);
this.object = this.canvas;
};
Player.prototype = {
object : null,
};
var player = new Player();
alert(player.object);
player.play();//метода нет, а при наследовании он должен быть => call не делает наследования