Javascript 为什么当我在console.log(createdAnimal)中未定义时?

Javascript 为什么当我在console.log(createdAnimal)中未定义时?,javascript,function,Javascript,Function,我试图在这段代码中实现的是能够控制台.log(createdAnimal),然后让代码用以下参数打印出objectAnimal: animalMaker('cat','flying',true); 它在调用animalMaker函数时工作,但在我调用console.log(createdAnimal)时需要它工作 提前谢谢你 代码如下: function animalMaker(inputType, inputSuperPower, inputCanFly){ var objectAnim

我试图在这段代码中实现的是能够控制台.log(createdAnimal),然后让代码用以下参数打印出objectAnimal:

animalMaker('cat','flying',true);
它在调用animalMaker函数时工作,但在我调用console.log(createdAnimal)时需要它工作

提前谢谢你

代码如下:

function animalMaker(inputType, inputSuperPower, inputCanFly){
  var objectAnimal = {
    'type': inputType,
    'inputSuperPower': inputSuperPower,
    'inputCanFly': inputCanFly,
    'createdBy': 'Scotty'
  };
  console.log(objectAnimal)
}

var createdAnimal = animalMaker('cat','flying',true); 

console.log(createdAnimal);

您需要从函数返回对象:

function animalMaker(inputType, inputSuperPower, inputCanFly){
  var objectAnimal = {
    'type': inputType,
    'inputSuperPower': inputSuperPower,
    'inputCanFly': inputCanFly,
    'createdBy': 'Scotty'
  };

  return objectAnimal;
}
function example() {
    return true;
    console.log('This will never be printed');
}

到目前为止,您的
animalMaker
函数不会返回任何内容,当不返回值时,默认情况下,函数将返回javascript中的
未定义的

因此,当使用
animalMaker
函数返回的值设置变量时,该值将为
undefined

要将
createdAnimal
变量设置为
objectAnimal
的值,您需要从函数返回它。通过使用返回语句结束
animalMaker
函数来实现:

return objectAnimal;  
记住,函数子句中return语句之后的代码永远不会执行,
return
结束函数:

function animalMaker(inputType, inputSuperPower, inputCanFly){
  var objectAnimal = {
    'type': inputType,
    'inputSuperPower': inputSuperPower,
    'inputCanFly': inputCanFly,
    'createdBy': 'Scotty'
  };

  return objectAnimal;
}
function example() {
    return true;
    console.log('This will never be printed');
}