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异步循环获取功能实现代码
Sep 19 Javascript
JavaScript高级程序设计 扩展--关于动态原型
Nov 09 Javascript
suggestion开发小结以及对键盘事件的总结(针对中文输入法状态)
Dec 20 Javascript
jquery制作select列表双向选择示例代码
Sep 02 Javascript
解决JS请求服务器gbk文件乱码的问题
Oct 16 Javascript
以WordPress为例讲解jQuery美化页面Title的方法
May 23 Javascript
Vue2学习笔记之请求数据交互vue-resource
Feb 23 Javascript
JS实现直接运行html代码的方法
Mar 13 Javascript
vue-cli + sass 的正确打开方式图文详解
Oct 27 Javascript
Javascript实现异步编程的过程
Jun 18 Javascript
微信小程序实现页面浮动导航
Jan 28 Javascript
基于layui轮播图满屏是高度自适应的解决方法
Sep 16 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
Terran历史背景
2020/03/14 星际争霸
利用谷歌 Translate API制作自己的翻译脚本
2014/06/04 PHP
PHP正则表达式笔记与实例详解
2019/05/09 PHP
Ext第一周 史上最强学习笔记---GridPanel(基础篇)
2008/12/29 Javascript
jquery 框架使用教程 AJAX篇
2009/10/11 Javascript
javascript循环变量注册dom事件 之强大的闭包
2010/09/08 Javascript
jQuery Validation实例代码 让验证变得如此容易
2010/10/18 Javascript
22点关于jquery性能优化的建议
2014/05/28 Javascript
JavaScript判断FileUpload控件上传文件类型
2015/09/28 Javascript
JS实现双击屏幕滚动效果代码
2015/10/28 Javascript
angularJs关于指令的一些冷门属性详解
2016/10/24 Javascript
Vue.js第四天学习笔记
2016/12/02 Javascript
jQuery实现当拉动滚动条到底部加载数据的方法分析
2019/01/24 jQuery
小程序异步问题之多个网络请求依次执行并依次收集请求结果
2019/05/05 Javascript
微信小程序获取地理位置及经纬度授权代码实例
2019/09/18 Javascript
nodejs中使用worker_threads来创建新的线程的方法
2021/01/22 NodeJs
Python自定义简单图轴简单实例
2018/01/08 Python
用Python3创建httpServer的简单方法
2018/06/04 Python
python实现pdf转换成word/txt纯文本文件
2018/06/07 Python
python zip()函数使用方法解析
2019/10/31 Python
Python request操作步骤及代码实例
2020/04/13 Python
Python yield生成器和return对比代码实例
2020/04/20 Python
Python 解决相对路径问题:"No such file or directory"
2020/06/05 Python
python中doctest库实例用法
2020/12/31 Python
检测用户浏览器是否支持CSS3的方法
2009/08/29 HTML / CSS
CSS3实现多样的边框效果
2018/05/04 HTML / CSS
兰蔻加拿大官方网站:Lancome加拿大
2016/08/05 全球购物
中科方德软件测试面试题
2016/04/21 面试题
市场营销专业个人求职信范文
2013/12/14 职场文书
机电专业个人求职信范文
2013/12/30 职场文书
中学教师请假制度
2014/02/03 职场文书
就业推荐表自我鉴定
2014/03/21 职场文书
2014最新自愿离婚协议书范本
2014/11/19 职场文书
2015年教研组工作总结
2015/05/04 职场文书
2015秋季开学典礼新闻稿
2015/07/17 职场文书
python 实现的截屏工具
2021/05/08 Python