从usercript中的匿名函数获取函数指针

时间:2014-08-15 17:35:58

标签: javascript userscripts

我是新来的,对不起,如果我说英语不是很好。我使用JavaScript已有1-3个月了,所以这里可能会有非常愚蠢的问题或想法。请告诉我我哪里错了。谢谢你。

我的用户脚本有问题:我需要获取指向从一个站点调用某些功能的指针。站点脚本的结构就像

(function(a, b) {
    var c = {
        d: true
    };
    var e = function(f) {
        g();
    }
})(jQuery, window);

我需要在我的用户脚本中访问e函数。它甚至可能吗?如果不是,怎么能以其他方式完成? (我需要从我的脚本中手动调用该函数)

请回答。感谢。

2 个答案:

答案 0 :(得分:1)

由于您的e变量是在函数内声明的,并且不用作返回值或分配给函数之外的任何内容,因此它是完全私有的。您无法从该功能外部访问它。

如果您想要,您可以更改它,以便:

(function(a, b) {
    var c = {
        d: true
    };
    b.e = function(f) {
        g();
    }
})(jQuery, window).

在那里,我们在e上(通过您的window参数间接)将b指定为属性window属性是全局变量,因此现在您有一个全局变量e

(但我不建议使用全局变量。)

答案 1 :(得分:1)

据我所知,你所展示的是一种非常有效的方法来制作变量/功能"私人" - 他们无法从外部访问。但是,如果将其设置为jQuery中的属性,或者窗口(window是包含所有全局变量的对象),则可以访问e。

由于我怀疑您的目标看起来与您指定的完全一致,因此您应该更仔细地研究它,看看e会发生什么,以及它是否被分配到某个地方就可以使用它。换句话说,我没有完整答案的所有信息。