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

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。

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

为啥 Firebase 在 Android 模拟器上运行时在 PhoneGap 应用程序中返回 404 错误?

为啥 Spring Boot 中的 REST 控制器返回 HTTP 状态 404 – 未找到

PHP MySQL - 为啥存储过程调用在 PHP 代码中意外结束

为啥我们不能直接从函数返回一个 mysqli 对象?对象必须先存储在变量中吗?

返回的对象未定义,使用 dynamicHelpers

localstorage 在页面刷新时在 react-redux 应用程序中返回“未定义”