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 相关文章推荐
IE的有条件注释判定IE版本详解(附实例代码)
Jan 04 Javascript
javascript与cookie 的问题详解
Nov 11 Javascript
使用jquery.validate自定义方法实现"手机号码或者固话至少填写一个"的逻辑验证
Sep 01 Javascript
jQuery实现浮动层随浏览器滚动条滚动的方法
Sep 22 Javascript
jQuery设置Cookie及删除Cookie实例分析
Apr 15 Javascript
第四章之BootStrap表单与图片
Apr 25 Javascript
jquery获取复选框checkbox的值实现方法
May 30 Javascript
Javascript中arguments对象的详解与使用方法
Oct 04 Javascript
分类解析jQuery选择器
Nov 23 Javascript
基于vue.js路由参数的实例讲解——简单易懂
Sep 07 Javascript
js删除对象/数组中null、undefined、空对象及空数组方法示例
Nov 14 Javascript
ES6对象操作实例详解
May 23 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
在 Laravel 6 中缓存数据库查询结果的方法
2019/12/11 PHP
Prototype PeriodicalExecuter对象 学习
2009/07/19 Javascript
javascript 限制输入脚本大全
2009/11/03 Javascript
jQuery解决iframe高度自适应代码
2009/12/20 Javascript
jQuery操作CheckBox的方法介绍(选中,取消,取值)
2014/02/04 Javascript
JavaScript操作Oracle数据库示例
2015/03/06 Javascript
jQuery实现的手机发送验证码倒计时效果代码分享
2015/08/24 Javascript
js实现数组冒泡排序、快速排序原理
2016/03/08 Javascript
浅谈js中的三种继承方式及其优缺点
2016/08/10 Javascript
深入理解JavaScript中的尾调用(Tail Call)
2017/02/07 Javascript
AngularJS自定义指令实现面包屑功能完整实例
2017/05/17 Javascript
基于Vue实例对象的数据选项
2017/08/09 Javascript
JS库之wow.js使用方法
2017/09/14 Javascript
vue2.x select2 指令封装详解
2017/10/12 Javascript
Vue使用预渲染代替SSR的方法
2020/07/02 Javascript
vue3.0封装轮播图组件的步骤
2021/03/04 Vue.js
python cx_Oracle模块的安装和使用详细介绍
2017/02/13 Python
Python numpy 提取矩阵的某一行或某一列的实例
2018/04/03 Python
python远程连接服务器MySQL数据库
2018/07/02 Python
Python 基于FIR实现Hilbert滤波器求信号包络详解
2020/02/26 Python
python matplotlib实现将图例放在图外
2020/04/17 Python
详解Django配置JWT认证方式
2020/05/09 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
2020/05/12 Python
python实现企业微信定时发送文本消息的示例代码
2020/11/24 Python
python爬虫中采集中遇到的问题整理
2020/11/27 Python
英国异国风情旅游网站:Travel Talk Tours(团体旅游、探险旅游、帆船假期)
2018/07/26 全球购物
德国便宜的宠物店:Brekz.de
2020/10/23 全球购物
什么是命名空间(NameSpace)
2015/11/24 面试题
应征英语教师求职信
2013/11/27 职场文书
中学生励志演讲稿
2014/04/26 职场文书
2014年社区宣传工作总结
2014/12/02 职场文书
2014年共青团工作总结
2014/12/10 职场文书
企业介绍信范文
2015/01/30 职场文书
关爱空巢老人感想
2015/08/11 职场文书
TensorFlow中tf.batch_matmul()的用法
2021/06/02 Python
Vue OpenLayer测距功能的实现
2022/04/20 Vue.js