Если вы добавили к прототипу, то вы должны создать экземпляр объекта для вызова метода:
var TopDownGame = TopDownGame || {};
TopDownGame.Lesson31 = function() {};
TopDownGame.Lesson31.prototype = {
setTile: function(x, y) {
console.log("setTile invoked");
},
};
var instance = new TopDownGame.Lesson31();
instance.setTile(3, 4);
Вы пытались вызвать его, как если бы он былстатический метод.Если это то, что вы действительно хотите сделать, определите метод как свойство функции, а не прототипа.
TopDownGame.Lesson31 = function() {};
TopDownGame.Lesson31.staticMethod = function() {
console.log('Static method invoked');
}
TopDownGame.Lesson31.staticMethod();
Но если вы действительно хотите сохранить setTile
как метод прототипа, но все жечтобы вызвать его, вы можете использовать метод apply
.
var TopDownGame = TopDownGame || {};
TopDownGame.Lesson31 = function() {};
TopDownGame.Lesson31.prototype = {
setTile: function(x, y) {
console.log(`setTile invoked, this='${this}', x=${x}, y=${y}`);
},
};
new TopDownGame.Lesson31().setTile(3, 4);
TopDownGame.prototype.setTile.apply('actually a string', [5, 6]);
Это приведет к:
setTile invoked, this='[object Object]', x=3, y=4
setTile invoked, this='actually a string', x=5, y=7