首页 > 解决方案 > 如何访问在全局范围内的包装函数中声明的变量?

问题描述

我正在开发一个使用两个 JS 文件的 Drupal 库——一个内部用于创建设置对象,另一个外部(供应商库)。

_settingsObject这是使用 Drupal 所需的包装器创建的本地文件。

(function ($) {
    'use strict';
    Drupal.behaviors.myBehavior = {
      attach: function (context, settings) {
        _settingsObject = {
            ...
        };
      }
    };
})(jQuery);

我遇到的唯一问题是另一个文件无法看到这个对象,我无法在控制台中访问它。如何使该对象在全局范围内可用?

谢谢!

标签: javascriptscope

解决方案


您可以将其添加到窗口对象。像这样做:

(function ($, window) {
    'use strict';
    window.globalVar = "My Global Var";
     Drupal.behaviors.myBehavior = {
       attach: function (context, settings) {
         _settingsObject = {
              ...
         };
       }
    };
})(jQuery, window);

推荐阅读