JavaScript本地范围功能

时间:2014-11-07 09:25:07

标签: javascript

我的代码是否是本地范围?

对我而言,似乎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);
        }  
    }
};

1 个答案:

答案 0 :(得分:0)

你的问题不明确,但是如果这个javascript在浏览器中运行(我假设它确实给出了window),那么所有声明为upplevel的变量都是全局的,可以作为window.varname访问

现在即使这不在浏览器中,或者它包含在一个函数中,您仍然可以通过myScope访问_hello,因为closures