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实现控制经纬度显示地图与卫星
May 20 Javascript
js中switch case循环实例代码
Dec 30 Javascript
jQuery插件开发的两种方法及$.fn.extend的详解
Jan 16 Javascript
js清空form表单中的内容示例
May 20 Javascript
jquery点击改变class并toggle的实现代码
May 15 Javascript
简单实现node.js图片上传
Dec 18 Javascript
jquery实现自定义图片裁剪功能【推荐】
Mar 08 Javascript
Angular.js中ng-include用法及多标签页面的实现方式详解
May 07 Javascript
vue跨域解决方法
Oct 15 Javascript
react-navigation 如何判断用户是否登录跳转到登录页的方法
Dec 01 Javascript
vue自定义filters过滤器
Apr 26 Javascript
viewer.js实现图片预览功能
Jun 24 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获取汉字首字母的函数
2013/11/07 PHP
php+mysqli事务控制实现银行转账实例
2015/01/29 PHP
js单例模式的两种方案
2013/10/22 Javascript
jquery中get,post和ajax方法的使用小结
2014/02/04 Javascript
js加密解密字符串可自定义密码因子
2014/05/13 Javascript
JavaScript判断是否为数字的4种方法及效率比较
2015/04/01 Javascript
javascript:void(0)是什么意思及href=#与href=javascriptvoid(0)的区别
2015/11/13 Javascript
JavaScript实现点击按钮直接打印
2016/01/06 Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
2016/08/17 Javascript
JS扩展类,克隆对象与混合类实例分析
2016/11/26 Javascript
原生JavaScript实现AJAX、JSONP
2017/02/07 Javascript
Bootstrap模态框使用详解
2017/02/15 Javascript
vue bootstrap小例子一枚
2017/06/09 Javascript
使用angular-cli webpack创建多个包的方法
2018/10/16 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
Layui tree 下拉菜单树的实例代码
2019/09/21 Javascript
vue中使用百度脑图kityminder-core二次开发的实现
2019/09/26 Javascript
Node.js API详解之 util模块用法实例分析
2020/05/09 Javascript
[07:59]2014DOTA2叨叨刀塔 林熊猫称被邀请赛现场盛况震撼
2014/07/21 DOTA
35个Python编程小技巧
2014/04/01 Python
跟老齐学Python之数据类型总结
2014/09/24 Python
import的本质解析
2017/10/30 Python
10招!看骨灰级Pythoner玩转Python的方法
2019/04/15 Python
python爬虫 线程池创建并获取文件代码实例
2019/09/28 Python
python 计算方位角实例(根据两点的坐标计算)
2020/01/17 Python
python中怎么表示空值
2020/06/19 Python
Pandas的Apply函数具体使用
2020/07/21 Python
详解pycharm配置python解释器的问题
2020/10/15 Python
美国彩妆品牌:Coastal Scents
2017/04/01 全球购物
节省高达65%的城市景点费用:Go City
2019/07/06 全球购物
中软国际Java程序员机试题
2012/08/19 面试题
普通大学毕业生自荐信
2013/11/04 职场文书
喝酒检查书范文
2014/02/23 职场文书
酒店工程部经理岗位职责
2015/04/09 职场文书
应届毕业生的自我评价
2019/06/21 职场文书
详解MySQL的主键查询为什么这么快
2022/04/03 MySQL