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 入门·JavaScript 具有全范围的运算符
Oct 01 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
Jan 08 Javascript
原生JS实现响应式瀑布流布局
Apr 02 Javascript
使用canvas及js简单生成验证码方法
Apr 02 Javascript
JavaScript定时器setTimeout()和setInterval()详解
Aug 18 Javascript
jquery操作ul的一些操作笔记整理(干货)
Aug 31 jQuery
jquery之基本选择器practice(实例讲解)
Sep 30 jQuery
发布Angular应用至生产环境的方法
Dec 10 Javascript
Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
May 13 Javascript
JS实现鼠标按下拖拽效果
Jul 23 Javascript
js前端传json后台接收‘‘被转为quot的问题解决
Nov 12 Javascript
vue中data里面的数据相互使用方式
Jun 05 Vue.js
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中使用Oracle数据库(3)
2006/10/09 PHP
PHP语法速查表
2007/01/02 PHP
一步一步学习PHP(1) php开发环境配置
2010/02/15 PHP
详解PHP的Yii框架的运行机制及其路由功能
2016/03/17 PHP
php 生成签名及验证签名详解
2016/10/26 PHP
在Laravel的Model层做数据缓存的实现
2019/09/26 PHP
超级强大的表单验证
2006/06/26 Javascript
用document.documentElement取代document.body的原因分析
2009/11/12 Javascript
JQuery学习笔记 nt-child的使用
2011/01/17 Javascript
js保留两位小数使用toFixed实现
2013/07/29 Javascript
javascript实现表单验证
2016/01/29 Javascript
a标签置灰不可点击的实现方法
2017/02/06 Javascript
angular6.0开发教程之如何安装angular6.0框架
2018/06/29 Javascript
从0搭建vue-cli4脚手架
2020/06/17 Javascript
JavaScript快速调试的两个技巧
2020/11/04 Javascript
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
举例讲解Python中装饰器的用法
2015/04/27 Python
Python简明入门教程
2015/08/04 Python
Python编程之event对象的用法实例分析
2017/03/23 Python
Python字典实现简单的三级菜单(实例讲解)
2017/07/31 Python
selenium3+python3环境搭建教程图解
2018/12/07 Python
解决django 新增加用户信息出现错误的问题
2019/07/28 Python
如何基于Python实现数字类型转换
2020/02/07 Python
python爬虫容易学吗
2020/06/02 Python
Melijoe时尚童装德国官网:Melijoe德国
2016/09/03 全球购物
Everlast官网:拳击、综合格斗和健身相关的体育用品
2020/08/03 全球购物
主要负责人任命书
2014/06/06 职场文书
中学生关于梦想的演讲稿
2014/08/22 职场文书
镇班子对照检查材料思想汇报
2014/09/24 职场文书
2014五年级班主任工作总结
2014/12/05 职场文书
幼儿园辞职信范文
2015/02/27 职场文书
新年晚会主持词开场白
2015/05/28 职场文书
2016年“5.12”护士节慰问信
2015/11/30 职场文书
mysql优化
2021/04/06 MySQL
Element实现动态表格的示例代码
2021/08/02 Javascript
JAVA API 实用类 String详解
2021/10/05 Java/Android