#javascript
#javascript
Вопрос:
Я очень новичок в JS, и я столкнулся с одной проблемой с глобальной переменной. Ниже приведено то, что я пытаюсь сделать, но во время выполнения выдается ошибка «Неперехваченная ошибка ссылки: finalStr не определен». Ниже приведен мой код:
finalStr: '',
getStatus: function (ConditionTrue) {
str = '';
if (data) {
switch (ConditionTrue) {
case UPLOADED:
str = '* ' FileName ' has been uploaded at ' Date;
finalStr = finalStr 'n' str " ";
break;
case CHECKS:
str = '* ' FileName ' failed' Date 'n' Comments;
finalStr = finalStr 'n' str " ";
break;
case VALIDATION:
str = '* ' FileName ' has been uploaded at ' Date 'n' '* Validating';
finalStr = finalStr 'n' str " ";
break;
default:
str = str 'n' Comments ? Comments : Date ' ' FileName ' ' Status;
finalStr = finalStr 'n' str " ";
break;
}
}
area.setValue(finalStr); ---> Giving error here - Uncaught ReferenceError: finalStr is not defined
},
Комментарии:
1. Попробуйте использовать
this.finalStr
2. Вы вставили неполный код. Что
area
, чтоsetValue
, где определена эта глобальная переменная? Соответствующие фрагменты отсутствуют.3. @Dario Не могли бы вы дать мне синтаксис этой строки: finalStr = finalStr ‘n’ str » «; строка? Должно ли это быть так.finalStr = this.finalStr ‘n’ str » «; ? и area.setValue(this.finalStr); Я хотел сохранить это как глобальную переменную, поэтому оставил это как вне метода
4. Похоже
finalStr
, это свойство вашего объекта, того же объекта с методом GetStatus. В этом смысле это не глобальная переменная, к которой необходимо обращатьсяthis.finalStr
. Если вам нужна глобальная переменная, просто объявите ее вне вашего объектаvar finalStr = ''
, и тогда вы сможете избежать использованияthis.
.
Ответ №1:
Похоже, что вам нужно ссылаться finalStr
на as this.finalStr
.
Комментарии:
1. Не могли бы вы, пожалуйста, дать мне синтаксис finalStr = finalStr ‘n’ str » «; строка? Должно ли это быть так.finalStr = this.finalStr ‘n’ str » «; ? Я хотел сохранить это как глобальную переменную, поэтому оставил это вне области действия метода.