javascript - 在对象的原始范围内调用函数

标签 javascript closures scope

好吧,考虑到以下我不想修改的 Javascript 代码:

(function () {

    function iWantToCallThis(){
        // Do some stuff
    }

    window.SomeObject = {

        theirfunc = function(){
            // Do some stuff
        },

        otherFuncIDontWantToCall = function(){
            // This works, but don't want to call this function.
            iWantToCallThis();
            // does other stuff
        }

    }

}());

如何通过 SomeObject 的范围访问 iWantToCallThis(),如下所示:

window.SomeObject.theirfunc = (function (func){
    iWantToCallThis();
    func.apply(this, arguments);
} (win.SomeObject.theirfunc));

即使我认为该函数 - 技术上 - 在其原始范围内运行,但我无权访问 iWantToCallThis()。有没有办法在不编辑原始源代码的情况下访问该功能?

谢谢!

最佳答案

马修

恕我直言,Douglas Crockford 的“Private Members in JavaScript”是关于此主题的权威文章。

它应该有助于说服您,除非通过特权方法,否则外部无法访问私有(private)成员。

关于javascript - 在对象的原始范围内调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16491078/

相关文章:

javascript - 将元素插入对象

c++ - Boost::log 在初始化后立即停止记录

rust - 变量在嵌套 lambda 中存活时间不够长的借用检查错误

c++ - 为什么不能在 C++ 类中重新定义类型名称?

forms - 这是 session 范围或请求范围内的 struts 1.x 表单 bean 吗?

javascript - 当图例条目具有焦点时,当线和点都显示在 Google 折线图中时,抑制十字准线 - Google Visualization API

javascript - 如何更优雅地编写这段代码?

javascript - Cypress 覆盖 'type' 命令添加一个小等待,如果之前调用 .clear() 会抛出 promise 错误

python - 向类添加动态函数; Python

javascript - jQuery 移动触摸事件处理、this 关键字上下文以及正确使用闭包