首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在从对象打印函数值时获取未定义的

问在从对象打印函数值时获取未定义的
EN

Stack Overflow用户
提问于 2022-09-18 18:10:10
回答 3查看 66关注 0票数 -1

嘿,伙计们,我是JavaScript新手,学习JavaScript中的对象,当我从一个对象打印一个函数值时,这个值会和一个未定义的值一起打印出来。

我只是想把两个字符串连接在一个函数中,然后打印出来。如果我只是尝试将字符串与console.log连接起来,我就不会得到任何未定义的值,但是当我试图通过对象中的一个函数连接时,就会出现问题。

代码语言:javascript
复制
let user = {
    firstname:'faiz',
    lastname:'mohammed',
    fun : function()  {
        let full_name = (this.firstname + " " + this.lastname);
        console.log(full_name);
        },

}


console.log(user.fun());

产出如下:

代码语言:javascript
复制
PS C:\Users\faizk\OneDrive\Desktop\WEBDEV\JS> node objects.js
faiz mohammed
undefined
PS C:\Users\faizk\OneDrive\Desktop\WEBDEV\JS> 

当我只是控制台日志时,我没有得到任何未定义的值:

代码语言:javascript
复制
console.log(user.firstname + " " + user.lastname);

产出:

代码语言:javascript
复制
PS C:\Users\faizk\OneDrive\Desktop\WEBDEV\JS> node objects.js
faiz mohammed
PS C:\Users\faizk\OneDrive\Desktop\WEBDEV\JS> 
EN

回答 3

Stack Overflow用户

发布于 2022-09-18 18:12:45

您的fun函数不返回任何内容,因此console.log(user.fun())打印undefined

要么返回一些东西:

代码语言:javascript
复制
function()  {
  let full_name = (this.firstname + " " + this.lastname);
  return full_name
},

console.log(user.fun());

或者不使用console.log

代码语言:javascript
复制
function()  {
  let full_name = (this.firstname + " " + this.lastname);
  console.log(full_name);
},

user.fun();
票数 1
EN

Stack Overflow用户

发布于 2022-09-18 18:12:55

因为这个函数是一个void函数(不要return任何东西),任何void函数都会返回undefined

​

代码语言:javascript
复制
let user = {
    firstname:'faiz',
    lastname:'mohammed',
    fun : function()  {
        let full_name = (this.firstname + " " + this.lastname);
        console.log(full_name); // faiz mohamed
        // the function doesn't return anything, which equal to "return undefined"
    },

}


console.log(user.fun()); // undefined

​

票数 1
EN

Stack Overflow用户

发布于 2022-09-18 18:14:33

问题是你要打电话给console.log(user.fun())。user.fun()用console.log()打印一行。这是输出的第一行。

user.fun()不返回任何值,因此返回值为undefined。console.log(user.fun())打印user.fun()的输出,即undefined。这就是第二行的来历。

要解决这个问题,只需将最后一行代码更改为

代码语言:javascript
复制
console.log(user.fun())

至

代码语言:javascript
复制
user.fun()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73765276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档