Я хочу написать это с помощью ES6, однако я застрял и нуждаюсь в вашей помощи. Когда я использую ES6, объявляю мой метод, прототип метода дает мне эту ошибку:
Uncaught TypeError: Невозможно установить свойство «move» неопределенного на planeJS.js: 238
let SI = {};
//some SI.Properties that i need...
// SI.SpaceShip = function (options) { // works fine
SI.SpaceShip = (options) => { // gives error
let defaultOptions = {
x: 0,
y: 0,
width: 0,
height: 0,
img: null,
imgX: 0,
}
for (let key in defaultOptions) {
if(options.hasOwnProperty(key)) {
this[key] = options[key];
}
else {
this[key] = defaultOptions[key];
}
}
}
Это прототип:
SI.SpaceShip.prototype.move = function (deltaX, deltaY) {
this.x += deltaX;
if(this.x <= 0) {
this.x = 0;
}
else if(this.x >= SI.Sizes.width - this.width) {
this.x = SI.Sizes.width - this.width;
}
this.y += deltaY;
if(this.y <= 0) {
this.y = 0;
}
else if(this.y >= SI.Sizes.height - this.height) {
this.x = SI.Sizes.height - this.height;
}
}
javascript,