0

这是代码

function toDo(day){
 // 1. check IF day is saturday OR sunday
  if (day==="saturday"||day==="sunday"){
  // 2. return the weekendChore function    
      return weekendChore();
  }
  else{
  // 3. otherwise return the weekdayChore function.
      return weekdayChore();
  }
}
      // These are the functions we will return:
function weekendChore(){
  alert("Weekend: walk 9am, feed at 4pm, walk at 10pm");
  return 1;
}

function weekdayChore(){
  alert("Weekday: feed at 12pm, walk at 1pm");
  return 0;
}

我是 Javascript 新手,正在努力学习。我搜索了,没有找到对上面提到的代码中return 1和return 0的作用的正确解释。你能解释一下吗?另外,你能用一些其他的例子来回放吗?谢谢

4

2 回答 2

1

这相当于

function toDo(day){
 // 1. check IF day is saturday OR sunday
  if (day==="saturday"||day==="sunday"){
  // 2. return the weekendChore function    
      weekendChore();
      return 1;
  }
  else{
  // 3. otherwise return the weekdayChore function.
      weekdayChore();
      return 0;
  }
}
      // These are the functions we will return:
function weekendChore(){
  alert("Weekend: walk 9am, feed at 4pm, walk at 10pm");
}

function weekdayChore(){
  alert("Weekday: feed at 12pm, walk at 1pm");
}

0这些的真正用途1很难猜测。它们可能被代码调用使用toDo

于 2013-11-08T18:27:20.790 回答
0

有时能够尽快返回是件好事(特别是如果你经常使用一个函数)。我无法解释这里的特定情况,因为它们每个只被调用一次。

这是一个示例,说明为什么多次调用它会很有用:

var lastError;

function doStuff(username) {
    if (users.create(username)) {
        if (users[username].setActive(true)) {
            return true;
        } else {
            return setError('Could not set user to active');
        }
    } else {
        return setError('Could not create user');
    }
}

function setError(error) {
    lastError = error;
    return false;
}

if (registerUser('MyUser')) {
    alert('Yay!');
} else {
    alert('An error happened: ' + lastError);
}

..与此相比:

function doStuff(username) {
    if (users.create(username)) {
        if (users[username].setActive(true)) {
            return true;
        } else {
            lastError = 'Could not set user to active';
            return false;
        }
    } else {
        lastError = 'Could not create user';
        return false;
    }
}

这只是意味着每次我们需要设置错误时,我们都必须返回 false(即使我们每次都这样做)。它真的只是更短。

于 2013-11-08T18:32:32.370 回答