为啥存储在对象中的函数在运行结束时在控制台中返回未定义? [复制]

Posted

技术标签:

【中文标题】为啥存储在对象中的函数在运行结束时在控制台中返回未定义? [复制]【英文标题】:Why does a function stored in an Object return undefined in console at the end of running? [duplicate]为什么存储在对象中的函数在运行结束时在控制台中返回未定义? [复制] 【发布时间】:2016-01-14 04:09:51 【问题描述】:

在玩创建“类对象”吗?如果这是正确的术语。

var cat = 
    eyes:2,
    pur: function() 
        console.log("puuuuurrrrr");
    
;
cat.pur();

在 Chrome 中,这将返回 console.log 消息,然后在下一行未定义。想知道是什么导致未定义在最后弹出。当我调用 cat.eyes 时它不会这样做。在 Internet Explorer 中,这发生在 console.log() 事件之前。在 nodeJS 中,这发生在 console.log 之后。

【问题讨论】:

因为pur()没有返回任何内容 【参考方案1】:

您首先在控制台中看到您写入控制台的内容是 puuuuurrrrr

undefined 是 pur() 的输出,没有任何意义 undefined。

如果您将 pur 更改为

console.log('whatever....');
return 'something';

您将看到的不是“未定义”,而是值“某物”。 希望能解释清楚。

【讨论】:

谢谢!你的回答真的帮助我理解了。但我不明白这与在控制台中的函数之外使用 'console.log("hey")' 有何关系。 如果您只是在开发人员工具控制台中编写 console.log('asdfasdf') 而不是运行该脚本,并且还会打印该脚本的输出。所以它会打印 console.log(whatever),而不是打印你写的行的输出。 console.log 的输出是未定义的,所以它会在之后打印 undefined。

以上是关于为啥存储在对象中的函数在运行结束时在控制台中返回未定义? [复制]的主要内容,如果未能解决你的问题,请参考以下文章