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


Posted in Javascript onJanuary 12, 2017

本文实例讲述了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

通过立即执行函数将对象(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 相关文章推荐
jquery.jstree 增加节点的双击事件代码
Jul 27 Javascript
javascript小组件 原生table排序表格脚本(兼容ie firefox opera chrome)
Jul 25 Javascript
javascript动态加载实现方法一
Aug 22 Javascript
js获取select默认选中的Option并不是当前选中值
May 07 Javascript
ext combobox动态加载数据库数据(附前后台)
Jun 17 Javascript
js实现点击向下展开的下拉菜单效果代码
Sep 01 Javascript
基于Jquery easyui 选中特定的tab
Nov 17 Javascript
javascript 继承学习心得总结
Mar 17 Javascript
JS图片轮播与索引变色功能实例详解
Jul 06 Javascript
Webpack 服务器端代码打包的示例代码
Sep 19 Javascript
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
Feb 27 jQuery
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
Nov 04 Javascript
Node.js制作简单聊天室
Jan 12 #Javascript
jQuery 插件实现随机自由弹跳气泡样式
Jan 12 #Javascript
微信小程序学习(4)-系统配置app.json详解
Jan 12 #Javascript
jQuery Validate 数组 全部验证问题
Jan 12 #Javascript
easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大的实现代码
Jan 12 #Javascript
React创建组件的三种方式及其区别
Jan 12 #Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
Jan 12 #Javascript
You might like
PHP安装全攻略:APACHE
2006/10/09 PHP
php面向对象全攻略 (七) 继承性
2009/09/30 PHP
php上传图片获取路径及给表单字段赋值的方法
2016/01/23 PHP
一款JavaScript压缩工具:X2JSCompactor
2007/06/13 Javascript
JavaScript对象属性检查、增加、删除、访问操作实例
2015/07/08 Javascript
如何利用AngularJS打造一款简单Web应用
2015/12/05 Javascript
JS实现日期时间动态显示的方法
2015/12/07 Javascript
js控制div层的叠加简单方法
2016/10/15 Javascript
vue-router跳转页面的方法
2017/02/09 Javascript
bootstrap实现动态进度条效果
2017/03/08 Javascript
Vue中的ref作用详解(实现DOM的联动操作)
2017/08/21 Javascript
使用MUI框架模拟手机端的下拉刷新和上拉加载功能
2017/09/04 Javascript
利用vue和element-ui设置表格内容分页的实例
2018/03/02 Javascript
代码详解javascript模块加载器
2018/03/04 Javascript
使用Vue自定义指令实现Select组件
2018/05/24 Javascript
three.js实现炫酷的全景3D重力感应
2018/12/30 Javascript
详解几十行代码实现一个vue的状态管理
2019/01/28 Javascript
微信小程序实现的一键连接wifi功能示例
2019/04/24 Javascript
JavaScript 作用域scope简单汇总
2019/10/23 Javascript
JS如何在不同平台实现多语言方式
2020/07/16 Javascript
[04:10]2018年度CS GO玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
Mac下Supervisor进程监控管理工具的安装与配置
2014/12/16 Python
Python Pexpect库的简单使用方法
2019/01/29 Python
在Django下测试与调试REST API的方法详解
2019/08/29 Python
python使用matplotlib绘制雷达图
2019/10/18 Python
python读取raw binary图片并提取统计信息的实例
2020/01/09 Python
英国羊绒服装购物网站:Pure Collection
2018/10/22 全球购物
财务会计专业毕业生自荐信
2013/10/02 职场文书
创业计划书——互联网商机
2014/01/12 职场文书
工作会议欢迎词
2014/01/16 职场文书
食品安全责任书
2014/04/15 职场文书
团队激励口号
2014/06/06 职场文书
电子信息工程专业自荐书
2014/06/24 职场文书
学生安全责任书模板
2014/07/25 职场文书
2015年语文教学工作总结
2015/05/25 职场文书
分析并发编程之LongAdder原理
2021/06/29 Java/Android