如何访问作为命名空间的函数内部变量

2025-06-26 01:31:24
推荐回答(1个)
回答1:

如果你把你的代码包含在一个函数里,那么你的代码里包含的变量和函数对于包含函数是本地的,或者说是局部的,这样则不会扰乱全局作用域。
var value = (function() { // Wrapper function creates a local scope or namespace // your code goes here return value; // Export a value from the namespace})()); // Invoke the wrapper function to run your code
例如,现在假设你刚刚用XMLHttpRequest获得了一段字符串形式的javascript代码。你打算去执行这下代码,你可能会想要在一个命名空间里去执行这段代码,这样执行代码的过程中就不会产生全局的变量或是函数。
这很简单,只要在执行前把这段代码包含进一个函数里。在这个情况下,构造函数Function() 比起eval() 更加得心应手。
var code = ....; // A string of JS code to evaluatevar f = new Function(code); // Wrap it in a functionf(); // And run the function