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

如何在自定义对象方法中调用另一个对象的方法?

解决方案

先理清楚你的场景和问题:

  • 原本直接复用其他对象方法的写法没问题:
const myObject = {
  property: propertyFromAnotherObject.method
};
  • 你想把自定义逻辑(比如清空localStorage)和原方法结合,但之前的写法不对:
MyOwnProperty: () => {
  localStorage.setItem('Storage', null);
  propertyFromAnotherObject.method // 这里只是写了方法名,没执行,而且箭头函数可能搞砸this指向
},

两种正确的写法:

情况1:原方法不依赖自身的this

如果propertyFromAnotherObject.method执行时不需要用到原对象的this,直接在自定义函数里调用它就行:

const myObject = {
  myCombinedMethod: () => {
    // 先跑自己的逻辑
    localStorage.setItem('Storage', null);
    // 再调用原方法
    propertyFromAnotherObject.method();
  }
};

情况2:原方法依赖自身的this

如果原方法里用到了this,且这个this得指向propertyFromAnotherObject,别用箭头函数,改用普通函数,确保原方法的上下文正确:

const myObject = {
  myCombinedMethod() {
    localStorage.setItem('Storage', null);
    // 直接调用原方法就行,此时this自动指向propertyFromAnotherObject
    propertyFromAnotherObject.method();
    // 要是怕上下文出问题,也可以用call明确绑定:
    // propertyFromAnotherObject.method.call(propertyFromAnotherObject);
  }
};

你的错误主要是两点:一是没给原方法加()执行,光写方法名不会触发运行;二是如果原方法依赖this,箭头函数的this会指向外层作用域,导致原方法执行异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 09:40:32