javascript对象作为参数不返回正确的对象

时间:2015-06-14 16:21:43

标签: javascript

我正在开发一个codecademy javascript课程,在这一个我必须返回两个人的年龄。出于某种原因,它正在回归年轻时代,不能为我的生活找到它。

// Our person constructor
function Person (name, age) {
    this.name = name;
    this.age = age;
}
// We can make a function which takes persons as arguments
// This one computes the difference in ages between two people
var ageDifference = function(person1, person2){
    return person1.age - person2.age;
}
// Make a new function, olderAge, to return the age of
// the older of two people
function olderAge(){
    if(alice > billy){
        return alice.age;
    }
    else{
        return billy.age;
    }
}


// Let's bring back alice and billy to test our new function
var alice = new Person("Alice", 30);
var billy = new Person("Billy", 25);

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

2 个答案:

答案 0 :(得分:2)

比较年龄的函数是比较对象而不是对象的age参数。所以这个功能:

function olderAge() {
  if (alice > billy) {
    return alice.age;
  } else {
    return billy.age;
  }
}

应该是:

function olderAge(a, b) {
  if (a.age > a.age) {
    return a.age;
  } else {
    return b.age;
  }
}

全部放在一起

我建议您将代码更改为此 - 我们会修复olderAge

// Our person constructor
function Person (name, age) {
    this.name = name;
    this.age = age;
}

// We can make a function which takes persons as arguments
// This one computes the difference in ages between two people
var ageDifference = function(person1, person2){
    return person1.age - person2.age;
}

// Make a new function, olderAge, to return the age of
// the older of two people
function olderAge(a, b) {
    if (a.age > b.age){
        return a.age;
    } else {
        return b.age;
  }
}


// Let's bring back alice and billy to test our new function
var alice = new Person("Alice", 30);
var billy = new Person("Billy", 25);

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

JSFiddle:http://jsfiddle.net/5ae24v92/2/

答案 1 :(得分:1)

试试这个:

N

你错过了" .age"相比之下..