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

通过函数调用对象字符串属性至控制台遇undefined问题求助

问题分析与修复方案

代码里的核心问题

  • 你试图访问pc.newPowerStatus.on,但newPowerStatus是对象的方法(函数),不是带on属性的对象,所以返回undefined。你要的电源状态是pc.powerOn属性。
  • run函数里的on变量未声明,调用pc.run()会直接报错。
  • newPowerStatus函数原本只负责设置值,没有返回值,没法通过它获取状态。

修复后的代码(满足函数调用获取属性值的需求)

const pc = {
  brandname: "hp",
  modelName: "hp-221Gt",
  cpu: {
    brandname: "hp",
    motherBoard: "inteLiCore",
    raminGB: 4,
    rominGB: 1024,
    processore: "Octacore",
    processorMaxSpeedinGHz: 3.8,
  },
  powerOn: "yes",
  // 新增逻辑:不传参时返回当前状态,传参则更新后返回
  newPowerStatus: function (on) {
    if (on !== undefined) {
      this.powerOn = on;
    }
    return this.powerOn;
  },
  // 修正run函数:调用newPowerStatus返回当前状态
  run: function () {
    return this.newPowerStatus();
  }
};

// 原有正常打印
console.log(pc);
console.log("The cpu I use has following specs : ", pc.cpu);

// 正确打印电源状态的几种方式
console.log("Is the pc running : ", pc.powerOn);
// 通过newPowerStatus函数获取状态
console.log("函数调用获取电源状态:", pc.newPowerStatus());
// 修改状态后用run函数获取
pc.newPowerStatus("no");
console.log("修改后通过run函数获取状态:", pc.run());

var show = "powerOn";
console.log(pc[show]);

关键修改说明

  1. 给newPowerStatus函数增加返回逻辑,既可以设置状态,也能返回当前状态。
  2. 修正run函数,避免未定义变量错误,让它返回当前电源状态。
  3. 移除错误的pc.newPowerStatus.on访问,改用正确的属性或函数调用方式。

内容的提问来源于stack exchange,提问作者Aman Prakash Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 16:25:26