我已经使用对象文字表示法创建了一个对象,并且在其中有两种方法已登录到控制台以确保它们可以正常工作。每种方法都显示在控制台中。但是在记录每个方法之后,立即返回“ undefined”,我无法弄清原因。
我搜索了与对象文字表示法有关的问题,但没有发现与该特定问题有关的任何内容。
我什至经历了MDN来处理对象。有人告诉我这可能是一个简单的错误。有没有人有什么建议?
这是我正在使用的代码:
var car = {
name: 'Magic',
make: 'Nissan',
model: 'Sentra',
mileage: 79000,
year: 2002,
owned: true,
start: function() {
console.log('Car is turned on!');
},
off: function() {
console.log('This car has not been turned on. Do you have the key?');
}
};
console.log(car);
console.log(car.start());
console.log(car.off());
答案 0 :(得分:1)
通过将car.start()
传递到console.log
,您正在记录car.start
的返回值,该返回值隐式为undefined
。要解决此问题,只需将代码更改为只调用对象上已登录到控制台的方法即可。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/return
答案 1 :(得分:1)
当您执行car.start()
时,它将把您的字符串打印到控制台,而console.log()
将返回undefined
。当您将其包装在另一个console.log()
调用中时,它将打印字符串和返回的值(例如undefined
)。
您可以直接像这样直接调用方法:
console.log(car);
car.start();
car.off();