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

如何在JavaScript中消除函数参数privateArgument的外部访问权限

如何限制回调仅访问转换后的值,屏蔽原函数参数?

我正在开发一个大型库,希望尽可能减少代码冲突。现有如下自执行函数:

((privateArgument) => {
     var transformed = privateArgument.someProperty;
     userCallback(); // 此处应仅能访问transformed
})({someProperty: 'Hello, world!'});

需要说明的是,我已尽可能简化示例以阐明意图。实际上,我无法控制传入函数的值({someProperty: 'Hello, world!'})。

以下是userCallback的示例:

() => {
     console.log(transformed); // 可在此自由使用
     console.log(privateArgument); // 遗憾的是也能被访问
}

我已尝试以下方案:

  • 设置privateArgument = undefined:破坏了对transformed的访问,且不会抛出原生"undefined"错误
  • 通过定义新的let privateArgument并用{}限定userCallback作用域来覆盖privateArgument:报错,提示无法重定义
  • 将transformed作为参数传入userCallback:无法解决问题

请注意,我专门询问的是参数问题,而非var、let这类常规变量。我知道常规变量的相关问题已在其他问答中解决,但那些答案对当前问题无效。

若有人知晓可利用的作用域机制,或能彻底移除privateArgument(使其抛出原生错误且可在userCallback中重新声明)的方法,我将不胜感激。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:50:20