【问题标题】:Get reference to variable inside anonymous function获取对匿名函数内变量的引用
【发布时间】:2014-11-28 01:16:06
【问题描述】:

假设我正在编写一个greasemonkey/chrome 扩展脚本,它需要访问一个封闭的匿名方法内部的变量,就像这样

$(document).ready(function() {
    var goldenTreasure = "Tasty Loins";
}

有没有任何方法可以让我到达那个金色的宝藏并给我一些美味的里脊肉?

注意:我不能编辑上面的方法,它在一个站点上,我的扩展需要访问里面的宝藏。

【问题讨论】:

    标签: javascript jquery scope


    【解决方案1】:

    无法访问闭包内的var,因为它是技术上隐藏在包含闭包内的private variable。只有该闭包内的函数才能访问它。

    【讨论】:

    • 感谢您的帮助,现在检查我的问题中的说明。该代码已经存在于一个网站上,我只是想用我注入的脚本找到里面的宝藏
    • @vvMINOvv 不幸的是,您无法访问这些腰部:P
    【解决方案2】:

    您可以在匿名函数之外声明一个变量,然后将其中的变量赋值为它的值。 (如果您打算在匿名函数中将goldenTreasure 用于其他目的,请这样做。

    var some;
    
    $(document).ready(function() {
        var goldenTreasure = "Tasty Loins";
        some = goldenTreasure;
    }
    

    【讨论】:

    • 感谢您的帮助,现在检查我的问题中的说明。该代码已经存在于一个网站上,我只是想用我注入的脚本找到里面的宝藏
    【解决方案3】:

    在外面定义变量,然后在里面赋值。

    var goldenTreasure;
    
    $(document).ready(function() {
        goldenTreasure = "Tasty Loins";
    }
    

    或者另一种方法是将其分配为窗口对象的属性

    $(document).ready(function() {
        window.goldenTreasure = "Tasty Loins";
    }
    

    【讨论】:

    • 感谢您的帮助,现在检查我的问题中的说明。该代码已在网站上预先存在,我只是想用我注入的脚本找到里面的宝藏
    猜你喜欢
    • 2022-11-10
    • 2016-07-23
    • 1970-01-01
    • 2011-08-20
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 1970-01-01
    相关资源
    最近更新 更多