Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript私有变量_Javascript_Jquery - Fatal编程技术网

Javascript私有变量

Javascript私有变量,javascript,jquery,Javascript,Jquery,如何使我的选项卡变量私有,并且只能从返回{}中访问控制台.log(选项卡)返回未定义的 $(document).ready(function () { Site.page = (function () { return { init: function () { Site.page.tabs.init(); }, //manage deal tabs

如何使我的
选项卡
变量私有,并且只能从
返回{}
中访问<代码>控制台.log(选项卡)返回
未定义的

$(document).ready(function () {
    Site.page = (function () {
        return {
            init: function () {
                Site.page.tabs.init();
            },
            //manage deal tabs
            tabs: (function () {
                var tabs = null;
                return {
                    init: function () {
                        console.log(tabs);
                    },
                    show: function (tab) {
                        $('#deal-tabs > div.selected').removeClass('selected');
                        $(tab).addClass('selected');
                    }
                }
            })()
        }
    }());

    Site.page.init();
});

为什么函数和变量的名称相同?如果您只需要返回{}中的变量,那么在该代码块中声明它,而不是在外部声明。

它为我打印出
null
,这是应该的。看起来您的代码做了您希望它做的事情。你是在我从没听说过的浏览器中尝试吗?JavaScript没有块作用域。在
返回{}
中声明它与在最近的封闭函数中声明它是一样的。