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 相关文章推荐
JavaScript词法作用域与调用对象深入理解
Nov 29 Javascript
JavaScript判断访问的来源是手机还是电脑,用的哪种浏览器
Dec 12 Javascript
javascript实现window.print()去除页眉页脚
Dec 30 Javascript
不同编码的页面表单数据乱码问题解决方法
Feb 15 Javascript
jQuery实现复选框成对选择及对应取消的方法
Mar 03 Javascript
JS实现点击事件统计的简单实例
Jul 10 Javascript
超详细的JS弹出窗口代码大全
Apr 18 Javascript
通过BootStrap实现轮播图的实际应用
Sep 26 Javascript
原生js实现水平方向无缝滚动
Jan 10 Javascript
layer实现关闭弹出层刷新父界面功能详解
Nov 15 Javascript
微信小程序map组件结合高德地图API实现wx.chooseLocation功能示例
Jan 23 Javascript
微信小程序官方动态自定义底部tabBar的例子
Sep 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
全新的PDO数据库操作类php版(仅适用Mysql)
2012/07/22 PHP
php使用session二维数组实例
2014/11/06 PHP
php+mysql查询实现无限下级分类树输出示例
2016/10/03 PHP
浅析php-fpm静态和动态执行方式的比较
2016/11/09 PHP
PHP将数据导出Excel表中的实例(投机型)
2017/07/31 PHP
php 命名空间(namespace)原理与用法实例小结
2019/11/13 PHP
jquery实现居中弹出层代码
2010/08/25 Javascript
JS弹出对话框返回值代码(asp.net后台)
2010/12/28 Javascript
JS无限极树形菜单,json格式、数组格式通用示例
2013/07/30 Javascript
jquery如何通过name名称获取当前name的value值
2013/12/20 Javascript
jQuery is()函数用法3例
2014/05/06 Javascript
thinkjs之页面跳转同步异步操作
2017/02/05 Javascript
DataTables添加额外的查询参数和删除columns等无用参数实例
2017/07/04 Javascript
NodeJs实现简单的爬虫功能案例分析
2018/12/05 NodeJs
JavaScript设计模式之命令模式实例分析
2019/01/16 Javascript
关于ES6尾调用优化的使用
2020/09/11 Javascript
vue-cli4使用全局less文件中的变量配置操作
2020/10/21 Javascript
[00:30]明星选手化身超级英雄!2018DOTA2亚洲邀请赛全明星赛来临!
2018/04/06 DOTA
python使用Tkinter显示网络图片的方法
2015/04/24 Python
zookeeper python接口实例详解
2018/01/18 Python
Python简单实现网页内容抓取功能示例
2018/06/07 Python
python事件驱动event实现详解
2018/11/21 Python
python代码 FTP备份交换机配置脚本实例解析
2019/08/01 Python
python 解压、复制、删除 文件的实例代码
2020/02/26 Python
python使用pandas抽样训练数据中某个类别实例
2020/02/28 Python
Html5 滚动穿透的方法
2019/05/13 HTML / CSS
Three Graces London官网:英国奢侈品牌
2021/03/18 全球购物
建筑专业自我鉴定
2013/10/22 职场文书
二年级体育教学反思
2014/01/15 职场文书
《一个中国孩子的呼声》教学反思
2014/02/12 职场文书
财务总监管理岗位职责
2014/03/08 职场文书
篮球比赛拉拉队口号
2014/06/10 职场文书
第二批党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
违纪开除通知书
2015/04/25 职场文书
进行数据处理的6个 Python 代码块分享
2022/04/06 Python
Python 操作pdf pdfplumber读取PDF写入Exce
2022/08/14 Python