2015-10-13 63 views
0

所以我正在關注一個關於codecademy的javascript課程,我決定嘗試一下我自己的腳本。因此,腳本是:Javascript一直在說undefined

function family1 (name, age) { 
    this.name = name; 
    this.age = age; 
} 

var family = new Array(); 

family[0] = new family1("alice", 40); 
family[1] = new family1("bob", 42); 
family[2] = new family1("michelle", 8); 
family[3] = new family1("timmy", 8); 

printFamily1 = function(person) { 
     console.log(person.name + " aged " + person.age); 
} 

console.log(printFamily1(family[0])) 
console.log(printFamily1(family[1])) 
console.log(printFamily1(family[2])) 
console.log(printFamily1(family[3])) 

它的工作原理,但在控制檯,它印

alice aged 40 
undefined 
bob aged 42 
undefined 
michelle aged 8 
undefined 
timmy aged 8 
undefined 

它的工作原理,但我不希望未定義的一部分!我如何解決這些問題!

+0

'printFamily1'函數返回'undefined'(因爲它什麼都不返回)。如果你不想要它 - 不輸出它,而只是'printFamily1(family [0])' – zerkms

+0

@zerkms你拯救了我的生活! TYSM!我真是個笨蛋。 –

+0

爲什麼你沒有返回一個字符串,並在控制檯上打印如下:printFamily = function(person){return person.name +「aged」+ person.age; }然後只是說console.log(printFamily(person [0])): –

回答

0

更新您的printFamily1功能看起來像這樣:

printFamily1 = function(person) { 
     console.log(person.name + " aged " + person.age); 
     return (person.name + " aged " + person.age); 
} 

的問題是你想打印什麼printFamily1回報,但你沒有定義的回報。所以,簡單地添加你想在你的控制檯

0

要打印什麼回報,你有兩個選擇:

  1. 不要再打電話console.log

    printFamily1(family[0]) 
    printFamily1(family[1]) 
    printFamily1(family[2]) 
    printFamily1(family[3]) 
    
  2. 別叫console.log內功能

    printFamily1 = function(person) { 
        return person.name + " aged " + person.age; 
    }