You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编写返回对象的carFactory函数及现有代码问题排查

错误排查

你的代码存在以下几处问题:

  • 参数赋值错误:你将make/model/year三个属性写死成了固定字符串'make'/'model'/'year',没有使用传入的参数变量值
  • isNew属性挂载对象错误:你将isNew挂载到了carFactory函数本身,而不是你创建的车辆对象
  • 函数无返回值:你没有将内部创建的newCar对象返回,使用new关键字调用构造函数默认返回的是this指向的实例,和你内部创建的newCar无关
  • 多余的this使用:需求仅要求普通函数返回对象,不需要用构造函数的this语法

修正后的代码

function carFactory(make, model, year) {
  // 直接用传入参数创建对象
  let newCar = {
    make: make,
    model: model,
    year: year,
  }
  // 给newCar对象添加isNew属性
  if (year > 2018) {
    newCar.isNew = true;
  } else {
    newCar.isNew = false;
  }
  // 返回创建好的对象
  return newCar;
};

// 调用方式符合需求示例,不需要加new
let newCar = carFactory('toyota', 'camry', 2020);
console.log(newCar); // 输出 { make: 'toyota', model: 'camry', year: 2020, isNew: true }

如需简化写法,也可以用对象属性简写和布尔值直接返回的逻辑压缩代码:

const carFactory = (make, model, year) => ({
  make,
  model,
  year,
  isNew: year > 2018
})

内容的提问来源于stack exchange,提问作者JonSnow1221

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 08:48:01