试图理解将对象传递给函数的含义

时间:2016-06-20 19:09:19

标签: javascript

这是我的功能:

function myFunction(theObject) {
    theObject.make = 'Saab';
} 
var mycar = {
    make : "volvo";
    model :1992;
};

this:console.log( myFunction(myCar));之类的事情     不应该打印volvo而不是undefined

4 个答案:

答案 0 :(得分:4)

不。您没有从myFunction返回任何内容,只是隐式返回undefined

答案 1 :(得分:2)

您正在打印函数myFunction的返回值。

myFunction没有返回值。所以你要打印undefined

答案 2 :(得分:1)

从您在问题中发布的代码:

  • 您需要"声明"使用逗号而不是分号的属性(否则会出现错误Uncaught SyntaxError: Unexpected token)。
  • 没有return语句的函数将返回undefined
  

当在函数中调用return语句时,执行此操作   功能停止了。如果指定,则返回给定值   功能来电。如果省略表达式,则返回undefined   代替。   来源MDN

下面是您的代码添加return并修复分号问题的示例。

在示例中,您可以注意到:

  • 我们将对象mycar传递给myFunction。
  • myFunction更改对象的属性来自' volvo'到萨博';
  • alert()的结果将是对象的属性修改,' Saab'



function myFunction(theObject) {
  return theObject.make = 'Saab';
}
var mycar = {
  make: "volvo", // use comma instead of semicolon
  model: 1992
};

// doing something like this:
alert(myFunction(mycar));




答案 3 :(得分:0)

为了回归'沃尔沃'你必须使用return,这意味着你的函数应该返回一些内容,否则它将返回undefined,因为它没有找到任何要返回的东西。

function myFunction(theObject) 
{{ theObject.make = 'Saab'; } 
 var mycar = {make : "volvo"; model :1992;};
 return mycar;
}

P.S。你错过了一个' {}'在你的功能的开始和结束。