我一直在通过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上存在对此问题的回答,请发帖。
答案 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!!!!'