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 04 Javascript
JQuery控制Radio选中方法分析
May 29 Javascript
简介JavaScript中getUTCMonth()方法的使用
Jun 10 Javascript
jQuery动画效果实现图片无缝连续滚动
Jan 12 Javascript
实现JavaScript的组成----BOM和DOM详解
May 18 Javascript
对于js垃圾回收机制的理解
Sep 14 Javascript
详解vue-cli项目开发/生产环境代理实现跨域请求
Jul 23 Javascript
《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析
Apr 08 Javascript
Vue中key的作用示例代码详解
Jun 10 Javascript
JavaScript中的Proxy对象
Nov 27 Javascript
在实例中重学JavaScript事件循环
Dec 03 Javascript
JavaScript中展开运算符及应用的实例代码
Jan 14 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生成高清缩略图实例详解
2015/12/07 PHP
Yii CGridView用法实例详解
2016/07/12 PHP
Yii2中Restful API原理实例分析
2016/07/25 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
thinkPHP+LayUI 流加载实现功能
2019/09/27 PHP
php上传后台无法收到数据解决方法
2019/10/28 PHP
js原型链原理看图说明
2012/07/07 Javascript
使用Jquery实现点击文字后变成文本框且可修改
2013/09/21 Javascript
jqGrid随窗口大小变化自适应大小的示例代码
2013/12/28 Javascript
jquery中的常用事件bind、hover、toggle等示例介绍
2014/07/21 Javascript
Node.js数据库操作之连接MySQL数据库(一)
2017/03/04 Javascript
vue 监听屏幕高度的实例
2018/09/05 Javascript
vue 点击按钮增加一行的方法
2018/09/07 Javascript
小程序开发中如何使用async-await并封装公共异步请求的方法
2019/01/20 Javascript
vue.js实现简单的计算器功能
2020/02/22 Javascript
Python常用时间操作总结【取得当前时间、时间函数、应用等】
2017/05/11 Python
基于Python对象引用、可变性和垃圾回收详解
2017/08/21 Python
利用python操作SQLite数据库及文件操作详解
2017/09/22 Python
基于scrapy的redis安装和配置方法
2018/06/13 Python
python opencv 图像拼接的实现方法
2019/06/27 Python
pandas对dataFrame中某一个列的数据进行处理的方法
2019/07/08 Python
Python使用tkinter模块实现推箱子游戏
2019/10/08 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
2020/02/20 Python
Python3自定义http/https请求拦截mitmproxy脚本实例
2020/05/11 Python
CSS3 选择器 属性选择器介绍
2012/01/21 HTML / CSS
HTML5新标签兼容——> 的两种方法
2018/09/12 HTML / CSS
Tiqets荷兰:出售欧洲最美丽的景点和博物馆门票
2018/01/09 全球购物
牛津在线药房:Oxford Online Pharmacy
2020/11/16 全球购物
最常使用的求职信
2014/05/25 职场文书
党员教师一句话承诺
2014/05/30 职场文书
小学生清明节演讲稿
2014/09/05 职场文书
小学公民道德宣传日活动总结
2015/03/23 职场文书
养成教育工作总结
2015/08/13 职场文书
大学学生会竞选稿
2015/11/19 职场文书
2016特色励志班级口号
2015/12/24 职场文书
一文搞懂PHP中的抽象类和接口
2022/05/25 PHP