Javascript 在控制台日志中显示的对象内部很难生成函数

Javascript 在控制台日志中显示的对象内部很难生成函数,javascript,console.log,Javascript,Console.log,我是JS的新手,所以为这个可能愚蠢的问题道歉。我正在学习对象构造函数语法,但我不明白为什么控制台日志不会显示作为该对象一部分的函数的结果。代码如下: var sportsCar = { name: "Lamborghini", color: "red", horsepower: "100mph", electric: true, showModelName: function() {

我是JS的新手,所以为这个可能愚蠢的问题道歉。我正在学习对象构造函数语法,但我不明白为什么控制台日志不会显示作为该对象一部分的函数的结果。代码如下:

var sportsCar = {
    name: "Lamborghini",
    color: "red",
    horsepower: "100mph",
    electric: true, 
    showModelName: function() {
      return(this.name);
      console.log(this.name);
    }
  };

将此对象输入到开发工具后的结果是空白的,当时我认为它会显示“Lamborghini”。我曾考虑将console.log(showModelName)放在对象之外,但记住函数没有全局范围。有人能解释为什么控制台日志没有显示名称吗?

这是正确的语法

var跑车={
名称:“兰博基尼”,
颜色:“红色”,
马力:“100英里每小时”,
是的,
showModelName:function(){
console.log(this.name);
}
};

sportsCar.showModelName()您的console.log需要位于return语句上方。return语句下面的任何内容都将被忽略

另外,您没有看到该语句的主要原因是您定义了一个函数。但看起来你没有调用它


尝试在sportsCar对象下方运行
sportsCar.showModelName()
不确定您到底想做什么,但似乎有两个问题,首先是因为您
在登录之前返回
,而且您仍然需要使用
此.showModelName
,而不仅仅是
showModelName

return(this.name); // nothing after this line will run
console.log(showModelName);
var跑车={
名称:“兰博基尼”,
颜色:“红色”,
马力:“100英里每小时”,
是的,
showModelName:function(){
console.log(this.showModelName);
返回(此名称);
}
};
console.log(sportsCar.showModelName())
  • 您的函数尚未调用,因此不会返回任何内容。添加以下行将调用该函数
  • sportsCar.showModelName()

  • 正如上面一些人提到的,return语句结束函数的执行。请看下面的示例以了解更多说明
  • 如果更改return语句和控制台日志的顺序,将得到以下结果:

    选项1(返回兰博基尼并结束函数):

    选项2(返回兰博基尼2次):


    谢谢你的解释。我的印象是,您应该“返回”函数的结果,以便将其存储在函数中。我想那不是真的?我不知道你说的“在函数中存储它”是什么意思。函数应该返回您希望它返回的任何内容,它实际上不需要存储任何内容。调用只能在对象外部进行吗?
    showModelName: function() {
          return(this.name);
          console.log(this.name);
        }
    
    showModelName: function() {
          console.log(this.name);
          return(this.name);
        }