可以删除Chrome和Firefox控制台中的“未定义”调用吗?

时间:2011-09-10 16:57:34

标签: javascript firefox google-chrome console

我一直在通过Stack Overflow,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”仍然会返回但是会发出“未定义”的消息。

这可以修复还是我在这里追尾?如果SO上存在对此问题的回答,请发帖。

2 个答案:

答案 0 :(得分:3)

当您在控制台中看到undefined时,表示您刚评估的语句未返回值。因此,无论你说什么,你正在评估的是不会返回一个值。

这里的困惑是你正在向控制台写this.one,而不是return

请改为尝试:

function runLoop () {
    return this.one;
}

答案 1 :(得分:2)

我会说你正在追逐你的尾巴,因为没有什么可以解决的。如果您不想在控制台中看到“未定义”一词,则可以从该功能中返回您想要查看的内容。

e.g。

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

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