Javascript 尝试在控制台中记录函数时未定义

Javascript 尝试在控制台中记录函数时未定义,javascript,Javascript,我有以下代码: var object = { name: 'hello!', func: function(){ console.log(this); } } console.log(object.func()); 我所期望的是,每当我记录object.func时,都能看到这个对象,而这确实发生了,我可以看到这个对象。但就在预期行为之后,我得到了意外行为,undefined 结果如下: { name: 'hello!', func: [Function

我有以下代码:

var object = {
    name: 'hello!',
    func: function(){
        console.log(this);
    }
}

console.log(object.func());
我所期望的是,每当我记录
object.func
时,都能看到这个对象,而这确实发生了,我可以看到这个对象。但就在预期行为之后,我得到了意外行为,
undefined

结果如下:

{ name: 'hello!', func: [Function: func] }
undefined
发生这种情况的原因是什么

旁注:

我知道我在写一些我不该写的东西。但是,这仍然不能解释为什么
未定义的
对象.func()
不返回任何内容(因此它返回未定义的)


无需记录object.func()的结果。

您正在尝试记录一个函数的结果,该函数不返回任何内容,因此未定义。只需调用
obj.func()
,因为您已经在那里处理了日志记录

或者在函数上返回一个值并记录在外部

var obj = {
    name: 'hello!',
    func: function(){
        return this;
    }
}

console.log(obj.func())
返回两行:1.
{name:“hello!”,func:ƒ}
和2<代码>未定义
@zipzit您正在做一个
控制台.log
两次。第一个在
.func()
方法内,第二个在对象外,由于
obj.func()
不返回我正在使用的函数的任何内容,因此未定义该对象<代码>返回此,而不是原始提交的内容。注意:我正在使用浏览器控制台。@zipzit如果您在浏览器的开发工具上测试此功能,那是因为
console.log()
也不返回任何内容,这就是为什么浏览器在我们编写的实际的
console.log(value)
之后显示未定义。如果您尝试OP提交的代码,您将得到三行结果My bad。没错。谢谢。