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 学习之旅 (3)
Feb 05 Javascript
Jquery练习之表单验证实现代码
Dec 14 Javascript
jquery插件jTimer(jquery定时器)使用方法
Dec 23 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
Sep 06 Javascript
jQuery函数map()和each()介绍及异同点分析
Nov 08 Javascript
JS实现HTML表格排序功能
Aug 05 Javascript
JS获取和修改元素样式的实例代码
Aug 06 Javascript
JS调用Android、Ios原生控件
Jan 06 Javascript
微信小程序注册60s倒计时功能 使用JS实现注册60s倒计时功能
Aug 16 Javascript
Angular HMR(热模块替换)功能实现方法
Apr 04 Javascript
Vue 项目分环境打包的方法示例
Aug 03 Javascript
Jquery的autocomplete插件用法及参数讲解
Mar 12 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
遍历指定目录下的所有目录和文件的php代码
2011/11/27 PHP
php和mysql中uft-8中文编码乱码的几种解决办法
2012/04/19 PHP
php三维数组去重(示例代码)
2013/11/26 PHP
PHP更安全的密码加密机制Bcrypt详解
2017/06/18 PHP
ThinkPHP实现的rsa非对称加密类示例
2018/05/29 PHP
php获取微信openid方法总结
2019/10/10 PHP
PHP重载基础知识回顾
2020/09/10 PHP
firefox中JS读取XML文件
2006/12/21 Javascript
url地址自动加#号问题说明
2010/08/21 Javascript
from表单多个按钮提交用onclick跳转不同action
2014/04/24 Javascript
jQuery解析XML与传统JavaScript方法的差别实例分析
2015/03/05 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
一起学写js Calender日历控件
2016/04/14 Javascript
angularJS利用ng-repeat遍历二维数组的实例代码
2017/06/03 Javascript
vue中如何实现后台管理系统的权限控制的方法示例
2018/09/19 Javascript
利用Webpack实现小程序多项目管理的方法
2019/02/25 Javascript
vue控制多行文字展开收起的实现示例
2019/10/11 Javascript
JavaScript实现鼠标经过表格某行时此行变色
2020/11/20 Javascript
[03:30]DOTA2完美“圣”典精彩集锦
2016/12/27 DOTA
Python文件及目录操作实例详解
2015/06/04 Python
Python基于pygame模块播放MP3的方法示例
2017/09/30 Python
基于Django filter中用contains和icontains的区别(详解)
2017/12/12 Python
python将文本中的空格替换为换行的方法
2018/03/19 Python
python3实现163邮箱SMTP发送邮件
2018/05/22 Python
Python分割指定页数的pdf文件方法
2018/10/26 Python
pandas DataFrame 行列索引及值的获取的方法
2019/07/02 Python
一款纯css3制作的2015年元旦雪人动画特效教程
2014/12/29 HTML / CSS
html5 canvas绘制矩形和圆形的实例代码
2016/06/16 HTML / CSS
Nike香港官网:Nike HK
2019/03/23 全球购物
生态学毕业生自荐信
2013/10/27 职场文书
献爱心标语
2014/06/21 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
实习协议书
2015/01/27 职场文书
投标邀请书范本
2015/02/02 职场文书
检察院起诉书
2015/05/20 职场文书
预备党员党支部意见
2015/06/02 职场文书