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 Select操作大集合
May 26 Javascript
你必须知道的Javascript知识点之"单线程事件驱动"的使用
Apr 23 Javascript
详解Javascript 装载和执行
Nov 17 Javascript
基于javascript实现图片左右切换效果
Jan 25 Javascript
最全面的JS倒计时代码
Sep 17 Javascript
javascript 使用正则test( )第一次是 true,第二次是false
Feb 22 Javascript
基于node.js实现微信支付退款功能
Dec 19 Javascript
基于vue通用表单解决方案的思考与分析
Mar 16 Javascript
vue实现路由切换改变title功能
May 28 Javascript
JavaScript日期库date-fn.js使用方法解析
Sep 09 Javascript
H5+css3+js搭建带验证码的登录页面
Oct 11 Javascript
多种类型jQuery网页验证码插件代码实例
Jan 09 jQuery
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
探讨如何使用SimpleXML函数来加载和解析XML文档
2013/06/07 PHP
详解WordPress中添加和执行动作的函数使用方法
2015/12/29 PHP
php Session无效分析资料整理
2016/11/29 PHP
ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
2019/03/11 PHP
javascript replace()正则替换实现代码
2010/02/26 Javascript
该如何加载google-analytics(或其他第三方)的JS
2010/05/13 Javascript
Javascript改变CSS样式(局部和全局)
2013/12/18 Javascript
js跳转页面方法总结
2014/01/29 Javascript
常规表格多表头查询示例
2014/02/21 Javascript
jQuery不使用插件及swf实现无刷新文件上传
2014/12/08 Javascript
JavaScript学习笔记整理之引用类型
2016/01/22 Javascript
深入理解JavaScript中的对象复制(Object Clone)
2016/05/18 Javascript
Node.js中process模块常用的属性和方法
2016/12/13 Javascript
vuejs绑定class和style样式
2017/04/11 Javascript
微信小程序点击控件修改样式实例详解
2017/07/07 Javascript
js+canvas实现验证码功能
2020/09/21 Javascript
vue操作下拉选择器获取选择的数据的id方法
2018/08/24 Javascript
JavaScript常用事件介绍
2019/01/21 Javascript
jQuery实现评论模块
2020/08/19 jQuery
通过实例解析js可枚举属性与不可枚举属性
2020/12/02 Javascript
[46:40]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
PyQt5打开文件对话框QFileDialog实例代码
2018/02/07 Python
python+pandas生成指定日期和重采样的方法
2018/04/11 Python
python3.7通过thrift操作hbase的示例代码
2020/01/14 Python
Python pip配置国内源的方法
2020/02/14 Python
PyCharm2020.1.2社区版安装,配置及使用教程详解(Windows)
2020/08/07 Python
html5 Canvas画图教程(4)—未闭合的路径及渐变色的填充方法
2013/01/09 HTML / CSS
HTML5适合的情人节礼物有纪念日期功能
2021/01/25 HTML / CSS
NEW LOOK官网:英国时装零售巨头之一,快时尚品牌
2017/01/11 全球购物
面向对象设计的原则是什么
2013/02/13 面试题
大学生自我鉴定
2013/12/16 职场文书
《小动物过冬》教学反思
2014/04/17 职场文书
微笑服务标语
2014/06/24 职场文书
党的群众路线教育实践活动整改落实情况报告
2014/10/28 职场文书
遗嘱范文
2015/08/07 职场文书
销区经理年终述职报告模板
2019/11/28 职场文书