2013-04-15 127 views
-1

我目前在CodeAcademy的javascript教程中,当我遇到这个课程时,我必须创建一个函数来比较2个人的年龄并输出老年人的年龄。如果两个人的年龄都相等,那么就会输出年龄。比较JavaScript中的两个对象属性(codecademy课程部分)

下面列出的是我已经提出的代码。但是,我一直在CodeAcademy的编辑器中发现错误,告诉我老人是未定义的。有人能够引导我走向正确的方向吗?或者指出我的错误?谢谢!

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

var olderAge = function(person1, person2) { 
    if (person1.age > person2.age) { 
     console.log(person1.age); 
    } else if (person1.age < person2.age) { 
     console.log(person2.age); 
    } else { 
     console.log(person1.age); 
    } 
}; 

var alice = new Person("Alice", 30); 
var billy = new Person("Billy", 25); 

console.log(" The older person is " + olderAge(alice, billy)); 
+2

你没有从oldAge函数返回任何东西。如果没有显式返回,JavaScript将返回undefined。 – joholo

+0

用oldAge函数替换console.log并返回 – David

+1

Ken,你在这里得到了所有正确的答案。我改变了你的问题,主持人在这里非常苛刻,也许这将有助于投票。另外,把控制台想象成一张废纸,而不是程序的很多部分。所以当你向控制台登录某些东西时,你会问你正在编写的程序是否只是在废纸上吐出一些价值,以便你可以了解当时程序中发生了什么。 – Costa

回答

3

olderAge不返回任何

我想你可能希望从功能可按返回老年人。

如此,而不是(或除了)

console.log(person1.age); 

你想

return person1.name; 

或者,您也可以将您的通话切换到

console.log(" The older person is "+ olderAge(alice, billy).name); 

,然后你可以做

return person1;