Можно ли удалить неопределенный вызов в консоли Chrome и Firefox? - PullRequest
0 голосов
/ 10 сентября 2011

В течение двух дней я искал ответы в Переполнении стека, в Google и в Google Code и не смог найти ответ на этот вопрос.Так что слушайте ...

У меня есть объект JS, похожий на этот:

var profile1 = {
one: "1",
two: "2"
}

var profile2 = {
one: "3",
two: "4"
}

function runLoop () {
console.log(this.one);
}

profile1.loop = runLoop;
profile2.loop = runLoop;

profile1.loop();

Так что profile1.loop () будет работать нормально в этом случае и вернет строковое значение"1".Но если я попытаюсь запустить его из консоли в Chrome или FF, «1» все равно вернется, но затем отправит сообщение «undefined».

Можно ли это исправить или я гоняюсь за хвостом здесь?Если на SO есть ответ на этот вопрос, пожалуйста, напишите.

Ответы [ 2 ]

3 голосов
/ 10 сентября 2011

Когда вы видите undefined в консоли, это означает, что только что вычисленный оператор не вернул значение. То, что вы оцениваете, не возвращает значение, несмотря на то, что вы говорите.

Путаница здесь в том, что вы пишете this.one в консоль, а не return ее.

Попробуйте вместо этого:

function runLoop () {
    return this.one;
}
2 голосов
/ 10 сентября 2011

Я бы сказал, что вы гоняетесь за хвостом, потому что нечего исправлять. Если вы не хотите видеть слово «undefined» в консоли, вы можете вернуть из этой функции все, что захотите.

, например

function runLoop() {
  console.log(this.one);
  return 'loop complete!!!!';
}

> profile1.loop();
1
'loop complete!!!!'
...