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

如何实现Person类addFriend方法,向实例friends数组推送对象

修改方案

你需要调整3处核心逻辑:

  • Person类要封装在createClassPerson函数内部,函数最终返回该类供外部实例化使用
  • addFriend是Person类的实例方法,需定义在类内部,方法内通过this访问当前实例的friends属性
  • 禁止直接操作Person类的静态属性做实例数据修改,所有实例属性都要绑定到this上

完整可运行代码

function createClassPerson() {
  // Person类定义在函数内部
  class Person {
    constructor(name, age, hobbies, friends = []) {
      this.name = name;
      this.age = age;
      this.hobbies = hobbies;
      // 给friends加默认空数组,避免不传参数时push报错
      this.friends = friends;
    }

    // addFriend作为类的实例方法定义
    addFriend(friendName, age) {
      this.friends.push({
        name: friendName,
        age: age
      });
    }
  }
  // 返回Person类供外部使用
  return Person;
}

// 用法示例
const Person = createClassPerson();
var julian = new Person("Julian", 24, ["Airplanes", "Running"], [{name: "James", age: 25}, {name: "Reginald", age: 21}]);
// 调用实例的addFriend方法
julian.addFriend("Lily", 23);
// 输出可看到friends数组已新增对应对象
console.log(julian.friends);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 14:48:03