如何使全局javascript对象无法访问

时间:2016-02-16 14:50:18

标签: javascript jquery

我有一个javascript对象,如下所示: -

(function ($, w, d) {

var myObject= {

    init: function () {
        // blablab
    },
    attach: {
        // blablab

    },
    validation: {
        // blablab
    },
    submitForm: {
        // blablab
    }
};

myObject.init();

window.myObject= myObject;



})(jQuery, window, document);

我将对象设为全局,因此我可以在我的应用程序中随处访问它,例如重新初始化对象。 到目前为止一切顺利但当我想直接在myObject文件中访问全局HTML - 对象时,它失败了,我得到了undefined

所以,在body - 标签的底部,我有这个:

<script>
    setTimeout(function (w) {
        console.log(myObject);
        // RE-INIT OBJECT HERE
    }, 1000)
</script>

因此,错误消息显示:myObject is not defined

我不知道为什么会失败。有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

var myObject = "";

(function ($, w, d) {

myObject = {

    init: function () {
        // blablab
    },
    attach: {
        // blablab

    },
    validation: {
        // blablab
    },
    submitForm: {
        // blablab
    }
};

myObject.init();

})(jQuery, window, document);

setTimeout(function (w) {
    console.log(myObject);
    // RE-INIT OBJECT HERE
}, 1000)

检查脚本标记中的setTimeout是否在js导入文件之后。

答案 1 :(得分:0)

您可以像这样设置对象:

window.myObject = myObject

要在全局范围内访问此内容,您需要使用window.myObject,如下所示:

<script>
    setTimeout(function (w) {
        console.log(window.myObject);
        // RE-INIT OBJECT HERE
    }, 1000)
</script>
相关问题