В данный момент я изучаю javascript, у меня 2 проблемы с одним и тем же кодом.
1) В фигурных скобках, если я помещаю один в верхней части кода под var Character function
.Я могу заставить команду changedXPos();
работать в консоли, если я этого не сделаю, я получаю changedXPos();
эту ошибку "Uncaught ReferenceError: changeXPos не определено в: 1: 1" Я не уверен почему.
2) В функции changedXPos
при выполнении кода я получаю значение как NaN.Я использовал отладчик, и я вижу, что весь экземпляр xPos
не определен.Если я даю xPos = 20
, то код работает нормально, поэтому я знаю, что xPos
по какой-то причине не ведет себя так, как должно, я просто не уверен, почему.
Я добавил комментарии в кодчтобы показать, где проблема.Спасибо за ваше время
var Character = function(name, xPos, yPos) {
this.name = name;
this.xPos = xPos;
this.yPos = yPos;
//} this bracket is not commentented out code works, by changedXPos(); in console but xPos is still undefined
//create instance of Character
var ron = new Character("Ronald", 55, 30);
var jil = new Character("Jill", 25, 45);
var jas = new Character("Jasmine", 16, 85);
//create arrary of instance Character
var characterArray = [ron, jil, jas];
//create for loop to loop through characterArray
for (i = 0; i < characterArray.length; i++) {
console.log(characterArray[i]);
}
this.information = function() {
"My name is: " + this.name + " My X position is: " + this.xPos + " My Y position is: " + this.yPos;
}
this.changedXPos = function(value) {
// change the x position here
//debugger;
var xPos = this.xPos; // if i take this var out i get xPos is undefined
//var value = isNaN(parseInt(xPos)) ? 0 : parseInt(xPos);
for (i = 0; i < characterArray.length; i++) {
value = xPos + 20;
console.log(value); // value is NaN or xPos is undefined
}
}
this.changedYPos = function(value) {
// change the y position here
}
Character.prototype.toString = function toString() {
//var info = // character's name and current position on the screen
//return info;
};
} // with this bracket coded out above function is out of code block