console.log不打印undefined?

时间:2009-07-07 19:44:18

标签: javascript

我是Javascript的新手。我试图理解“这个”必然会使用不同的例子。我使用console.log打印一些值,如下所示。

function FuncObject(value) { 
    this.answer = value;
    this.get_answer = function () { 
       return this.answer;
    }
};

var f = new FuncObject(42);

var fanswer = f.get_answer;
console.log(fanswer())

console.log打印“function”而不是“undefined”。 document.writeln似乎打印“undefined”这是正确的,因为它绑定到没有答案的window对象。现在打印功能让我困惑。现在我想知道我应该用什么来记录。我无法找到解释。

感谢mohan

1 个答案:

答案 0 :(得分:1)

只是因为你没注意到,你发布的代码中有一个拼写错误 this.get_answer = 功能()

考虑到这一点,我不完全确定你的经验水平,所以让我涵盖所有的基础。

function FuncObject(value) { 
   this.answer = value; 
   this.get_answer = function () { 
     return this.answer; 
   } 
};

var f = new FuncObject(42);

var fanswer = f.get_answer;
console.log(fanswer())

您设置的fanswer = f.get_answer f.get_answer是一个函数,因此它将fanswer设置为等效于this.get_answer函数

如果您想要f.get_answer的返回值,则需要拨打f.get_answer(),然后返回42.

根据您所放置的内容,console.log(fanswer()) 按预期打印 undefined
 如果您只是console.log(fanswer),它会将其记录为 function ,也会按预期进行记录。

我不确定为什么你会收到你在问题中所说的功能,因为我绝对不会,jsbin