首页 > 解决方案 > 未捕获的 ReferenceError 出租车未定义

问题描述

var taxi = {
    Make: "Thundi Motors",
    Model: "Nissan",
    Year : 1986,
    Color : "Yellow-Black",
    Passengers : 5,
    Transmisson : "Automatic",
    Mileage : 97000
};

var Mazda = {
    Make : " 808",
    Model : "Classic",
    Year : 1979,
    Color : "Brown",
    Passengers : 5,
    Transmisson : "Manual",
    Mileage : 312000
};

  function eligible(car) {
      if(car.Mileage > 10000) {
          return false;
      }
      else if (car.Year > 1985){
          return false;
      }
      return true;
  }
var worthLook = eligible(Taxi);

if (worthLook) {
    console.log("Go for this" );
} else {
    console.log ("Think again for this");
}

汽车代码我一直在尝试此代码,并且很多时候我收到消息 Uncaught ReferenceError: Taxi is not defined at index.js:190 ,尽管有时当我尝试taxi.model或taxi.year等时,创建的对象在控制台中执行得很好?

此外,条件代码表现异常并一直执行第二个控制台行。

我将不胜感激。

附上代码图像。

标签: javascriptobject

解决方案


Javascript变量区分大小写,这意味着Fooand foo,或者在你的情况下Taxiand taxi,不是同一个变量。您需要将Taxi变量替换taxieligible函数调用。

var taxi = {
    Make: "Thundi Motors",
    Model: "Nissan",
    Year : 1986,
    Color : "Yellow-Black",
    Passengers : 5,
    Transmisson : "Automatic",
    Mileage : 97000
};

var Mazda = {
    Make : " 808",
    Model : "Classic",
    Year : 1979,
    Color : "Brown",
    Passengers : 5,
    Transmisson : "Manual",
    Mileage : 312000
};

  function eligible(car) {
      if(car.Mileage > 10000) {
          return false;
      }
      else if (car.Year > 1985){
          return false;
      }
      return true;
  }
var worthLook = eligible(taxi);
//-----------------------^^^^^
if (worthLook) {
    console.log("Go for this" );
} else {
    console.log ("Think again for this");
}


推荐阅读