嘿,伙计们,我是JavaScript新手,学习JavaScript中的对象,当我从一个对象打印一个函数值时,这个值会和一个未定义的值一起打印出来。
我只是想把两个字符串连接在一个函数中,然后打印出来。如果我只是尝试将字符串与console.log连接起来,我就不会得到任何未定义的值,但是当我试图通过对象中的一个函数连接时,就会出现问题。
let user = {
firstname:'faiz',
lastname:'mohammed',
fun : function() {
let full_name = (this.firstname + " " + this.lastname);
console.log(full_name);
},
}
console.log(user.fun());产出如下:
PS C:\Users\faizk\OneDrive\Desktop\WEBDEV\JS> node objects.js
faiz mohammed
undefined
PS C:\Users\faizk\OneDrive\Desktop\WEBDEV\JS> 当我只是控制台日志时,我没有得到任何未定义的值:
console.log(user.firstname + " " + user.lastname);产出:
PS C:\Users\faizk\OneDrive\Desktop\WEBDEV\JS> node objects.js
faiz mohammed
PS C:\Users\faizk\OneDrive\Desktop\WEBDEV\JS> 发布于 2022-09-18 18:12:45
您的fun函数不返回任何内容,因此console.log(user.fun())打印undefined
要么返回一些东西:
function() {
let full_name = (this.firstname + " " + this.lastname);
return full_name
},
console.log(user.fun());或者不使用console.log
function() {
let full_name = (this.firstname + " " + this.lastname);
console.log(full_name);
},
user.fun();发布于 2022-09-18 18:12:55
因为这个函数是一个void函数(不要return任何东西),任何void函数都会返回undefined
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
发布于 2022-09-18 18:14:33
问题是你要打电话给console.log(user.fun())。user.fun()用console.log()打印一行。这是输出的第一行。
user.fun()不返回任何值,因此返回值为undefined。console.log(user.fun())打印user.fun()的输出,即undefined。这就是第二行的来历。
要解决这个问题,只需将最后一行代码更改为
console.log(user.fun())至
user.fun()https://stackoverflow.com/questions/73765276
复制相似问题