【问题标题】:JS: How can I prevent access to the global variables do?JS:我怎样才能防止访问全局变量呢?
【发布时间】:2014-08-21 11:14:01
【问题描述】:

是在我想要的函数中禁用全局变量。

我愿意花费Adobe After Effect

示例代码:

function privateFunction(){
    return window;
}

那么正常:

result : Window Object

但我想要:

result : undefined

我该怎么办?

请帮帮我

我想阻止函数中的全局变量访问;

【问题讨论】:

标签: javascript function global


【解决方案1】:

用局部变量遮蔽全局变量:

function privateFunction() {
    var window;
    return window; // not the Window, but undefined now
}

【讨论】:

  • 它解决了示例问题。但是,可以阻止所有数学、文档、HTMLElemnt ......没有更简单的方法吗?
  • 没有。没有办法限制任意函数的范围访问。不知道你为什么要这样做,购买你可能想看看web workers
  • 是的.. 我想要 Web Worker... T_T 但那是异步的.. T_T
  • JS 中的一切都是异步的,这应该不是问题。但同样,你需要这个做什么?你想运行不受信任的代码吗?
  • 1 是的!就是这样!实际上,我会为用户制作表达式脚本。正如你所说,这是不受信任的脚本..
【解决方案2】:

您需要将所有内容都包装在一个闭包中:

    (function() {
        var window = 'foo';
        function privateFunction(){
            return window;
        }
    
        console.log(privateFunction());
    })();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-19
    相关资源
    最近更新 更多