我是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
答案 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。