如何实现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
相关产品推荐
相关产品推荐

