我的代码是否是本地范围?
对我而言,似乎myScope
是本地范围,可以通过_hello
访问这个假设是否正确?
var myScope = function () {
function hiThere() {
//...
}
function bye() {
/...
}
return {
hiThere:hiThere,
bye:bye
};
//... more functions
}();
if (window._hello) {
for (var i = 0; i < _hello.length; i++) {
var method = _hello[i].shift();
try {
myScope[method].apply(myScope, _hello[i]);
} catch (err) {
//console.log(err);
}
}
};
window._hello = {
push: function() {
try {
var args = Array.prototype.slice.call(arguments, 0);
var method = args[0].shift();
myScope[method].apply(myScope, args);
}
catch(err) {
//console.log(err);
}
}
};
答案 0 :(得分:0)
你的问题不明确,但是如果这个javascript在浏览器中运行(我假设它确实给出了window
),那么所有声明为upplevel的变量都是全局的,可以作为window.varname
访问
现在即使这不在浏览器中,或者它包含在一个函数中,您仍然可以通过myScope
访问_hello
,因为closures。