JavaScript 定义全局对象的方法示例

作者:半夏

时间:2026-10-21

浏览:149

本文介绍了在 JavaScript 中通过立即执行函数(IIFE)定义全局对象的两种常见方法。第一种方法将对象作为参数传递给工厂函数,利用 Object.defineProperty 定义属性;第二种方法采用变量合并策略初始化对象。这两种方式均能实现功能模块的独立保存与使用,类似于 jQuery 插件的开发模式,有助于避免全局变量污染。

文章目录

JavaScript 全局对象定义方法

本文通过具体实例解析了 JavaScript 中定义全局对象的实现方式,供开发者参考。


!function (factory) {
  factory(window['Hi'] = {
    __a: function () {
      console.log('Hi.__a');
    },
    __b: function () {
      console.log('Hi.__b');
    },
    __c: function () {
      console.log('Hi.__c');
    }
  });
}(function (Hi) {
  if (typeof Hi === undefined) {
    Hi = {};
  }
  Object.defineProperty(Hi, 'appName', {
    get: function () {
      return 'this is app name.';
    }
  })
});
console.log(Hi.appName);//this is app name.
Hi.__b();//Hi.__b

利用立即执行函数(IIFE)将对象(如 Hi)作为参数,传递给名为 factory 的函数。


!function (factory) { }();

在立即执行函数内部,将需要定义的对象以参数形式传入工厂函数。

以下代码展示了另一种实现相同对象定义的方式:


var myObj = myObj || {};
(function (myObj) {
  myObj.__a = function () {
    console.log('myObj.__a');
  };
  myObj.name = 'this is myObj.name';
})(myObj);
console.log(myObj.name);//this is myObj.name
myObj.__a();//myObj.__a

上述定义方法相对独立,可作为功能模块进行保存和调用。

这种写法类似于 jQuery 插件的开发风格。

更多关于 JavaScript 相关内容感兴趣的读者可查看本站专题:《javascript面向对象入门教程》、《JavaScript查找算法技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript中json操作技巧总结》、《JavaScript错误与调试技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家 JavaScript 程序设计有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章