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

如何从导入对象调用函数?Odoo原生JS模块扩展疑问

问题解答

1. 获取mainFunction的返回值

当前你的parentFunction没有定义返回值,调用mainFunction()后会返回undefined。要获取有效返回值,必须修改parentFunction,让它返回你需要的内容:

// 修改file_a.js中的parentFunction
function parentFunction(someArg) {
  function _internalFunction() {
    const someValue = 'some_value';
    return someValue;
  }
  return _internalFunction; // 返回内部函数
}

之后在file_b.js中调用mainFunction就能拿到返回的_internalFunction:

const internalFunc = mainAction.mainFunction('你的参数');

2. 访问_internalFunction并获取someValue

_internalFunction是parentFunction的私有内部函数,只有在parentFunction主动把它暴露出来(比如通过return)时,外部才能访问。按照上面的修改,你已经拿到了_internalFunction,直接调用它就能获取someValue:

const someValue = internalFunc();
console.log(someValue); // 输出 'some_value'

关键注意点

如果无法修改file_a.js的原代码,没有任何合法方式能直接访问parentFunction内部的_internalFunction或someValue——这是JavaScript函数作用域的特性,私有作用域内的未暴露变量/函数无法被外部访问。Odoo的原生服务如果没有提供扩展接口,你只能通过修改原模块代码的方式来暴露需要的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 03:34:51