如何使javascript对象全局可用

How to make javascript object acessible globally

本文关键字:全局 对象 何使 javascript      更新时间:2023-09-26

我有一个javascript对象,看起来像:-

(function ($, w, d) {
var myObject= {
    init: function () {
        // blablab
    },
    attach: {
        // blablab
    },
    validation: {
        // blablab
    },
    submitForm: {
        // blablab
    }
};
myObject.init();
window.myObject= myObject;

})(jQuery, window, document);

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

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

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

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

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

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 导入文件之后。

你这样设置你的对象:

window.myObject = myObject

要在全局范围内访问它,您需要使用如下window.myObject

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