尚学堂requireJs课程---2、模块

一、总结

一句话总结:

# 将代码以及使用放到独立的闭包中去,并且赋值给了变量,便于外部访问
# return出了函数和变量(放在一个json对象中)
# 百度的webuploader应该就是这么搞的,require.js的最基础原理也是这个
# 搞那么复杂就是为了解决一个作用域的问题
// 模块!
var module = (function(){ var Demo = { }
var hello = "hello"; function userInfo(){
var name = "iwen";
var age = 20;
console.log(name);
} return {
userInfo:userInfo,
hello:hello
} })();
console.log(module.hello);
module.userInfo();

1、js中通过对象实现变量不至于直接挂载到全局(缺点是外部可以修改,不符合开闭原则)?

用对象来定义变量
var infoObj = {
name:"iwen",
age:20,
sex:"男"
}
// 不至于直接挂载到全局
console.log(infoObj.age);
infoObj.age = 30;
console.log(infoObj.age);

2、js作用域独立实例(外部不能修改,问题是外部无法使用)?

将代码以及使用放到独立的闭包中去
(function(){
function userInfo(){
var name = "iwen";
var age = 20;
return {
name:name,
age:age
}
}
console.log(userInfo().age);
var info = userInfo()
console.log(info.name);
})();

3、js模块实例(在js作用域独立的基础上赋值给变量,便于外部访问)?

# 将代码以及使用放到独立的闭包中去,并且赋值给了变量,便于外部访问
# return出了函数和变量(放在一个json对象中)
# 百度的webuploader应该就是这么搞的,require.js的最基础原理也是这个
# 搞那么复杂就是为了解决一个作用域的问题
// 模块!
var module = (function(){ var Demo = { }
var hello = "hello"; function userInfo(){
var name = "iwen";
var age = 20;
console.log(name);
} return {
userInfo:userInfo,
hello:hello
} })();
console.log(module.hello);
module.userInfo();

二、内容在总结中

 <!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body> <script type="text/javascript">
/*
模块
设计模式规范:
开闭原则:对扩展开放,对修改关闭
*/ // var infoObj = {
// name:"iwen",
// age:20,
// sex:"男"
// }
// // 不至于直接挂载到全局
// console.log(infoObj.age);
// infoObj.age = 30;
// console.log(infoObj.age); // 作用域独立
// (function(){
// function userInfo(){
// var name = "iwen";
// var age = 20;
// return {
// name:name,
// age:age
// }
// }
// console.log(userInfo().age);
// var info = userInfo()
// console.log(info.name);
// })(); // 模块!
var module = (function(){ var Demo = { }
var hello = "hello"; function userInfo(){
var name = "iwen";
var age = 20;
console.log(name);
} return {
userInfo:userInfo,
hello:hello
} })();
console.log(module.hello);
module.userInfo(); </script> </body>
</html>
 

尚学堂requireJs课程---2、模块的更多相关文章

  1. 尚学堂requireJs课程---3、私有和公有属性和方法

    尚学堂requireJs课程---3.私有和公有属性和方法 一.总结 一句话总结: 在 [模块] 的基础上,在return对象里面的方法和属性就是公有的(因为外部可以访问),不在的就是私有的 < ...

  2. 尚学堂requireJs课程---1、作用域回顾

    尚学堂requireJs课程---1.作用域回顾 一.总结 一句话总结: 尚学堂的课程的资料他的官网上面是有的 1.js作用域? ~ js中是函数作用域:局部变量的话要写var关键词 ~ 闭包可以解决 ...

  3. [JAVA教程] 2016年最新spring4框架搭建视频教程 【尚学堂】

    Spring4框架 主讲:邹波 类型:SSH 适合对象:学习完javase.数据库技术.jdbc者 Spring4.0作为一个广泛使用的开源框架,它由Rod Johnson创建.它是为了解决企业应用开 ...

  4. 尚学堂Java第一课

    今天是北京尚学堂郑州分校开课的第一天,小班面授教学. 我很兴奋,是一个小白对IT大神渴求传道授业解惑的兴奋. 杨老师还是一贯耐心详细的手敲了第一堂课的完整大纲,必须给杨老师赞赞赞!!! 从幽默的制定班 ...

  5. 尚学堂马士兵struts2 课堂笔记(一)

    06_尚学堂马士兵_Struts2_Struts2_HelloWorld_5 <constant name="struts.devMode" value="true ...

  6. SVN和Git的功能和区别,尚学堂SVN和Git学习视频资料免费下载

    对于软件开发人员来说,版本控制系统再熟悉不过了,所谓版本控制系统就是软件项目开发过程中用于储存开发人员所写代码所有修订版本的软件.目前常见的版本控制系统分为集中式版本控制系统(SVN)和分布式版本控制 ...

  7. 又到毕业季,尚学堂喊你免费领取100个Java毕设项目(含源码视频),限时一周哦!

    你还在为毕设发愁?不知道该如何命题?不知道从哪里下手?担心毕设过不了影响毕业? 尚学堂首家隆重推出了刷爆朋友圈的毕设100个项目,别说你还没去下载观看!!最最重要的是:免费!免费!免费!而且限时一周! ...

  8. 《尚学堂_史上最易懂的设计模式视频》--章节3 Iterator迭代 模拟列表

    广州尚学堂官网-|广州Java培训|Java培训机构|人工智能+Python培训|PHP培训|全栈工程师培训|UI设计培训|前端移动开发培训http://www.gzsxt.cn/ ==Iterato ...

  9. 尚学堂JAVA基础学习笔记

    目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...

随机推荐

  1. 第十章、logging模块

    目录 第十章.logging模块 一.logging模块及日志框架 第十章.logging模块 一.logging模块及日志框架 导入方式 import logging 作用 写日志 模块功能 # V ...

  2. 深入学习Mybatis框架(二)- 进阶

    1.动态SQL 1.1 什么是动态SQL? 动态SQL就是通过传入的参数不一样,可以组成不同结构的SQL语句. 这种可以根据参数的条件而改变SQL结构的SQL语句,我们称为动态SQL语句.使用动态SQ ...

  3. Hive的视图和索引(九)

    Hive的视图和索引 1.Hive Lateral View 1.基本介绍 ​ Lateral View用于和UDTF函数(explode.split)结合来使用. ​ 首先通过UDTF函数拆分成多行 ...

  4. 深圳即将启动首届「全国人工智能大赛」:超过 500 万大奖 & 政府资助,潜信息你读懂了吗!

    人工智能加速“视频/视觉”发展,近期,深圳市即将迎来人工智能领域权威赛事之一——首届「全国人工智能大赛」(The First National Artificial Intelligence Chal ...

  5. Java语言基础(9)

    1 方法(二) 1) 不带参数没有返回值的方法: 案例:Demo1 public class Demo1 { static void show(){ System.out.println(" ...

  6. CNN for NLP(2)

    参考链接: 卷积神经网络(CNN)在句子建模上的应用, 卷积神经网络CNN在自然语言处理中的应用, CNN在NLP中的应用.

  7. NTP服务及时间同步

    环境: centos7 server   192.168.2.171 client    192.168.2.173.192.168.2.174 整体思路:173.174同步171的时间,171定时同 ...

  8. React组件:拖拽布局Dragact v0.1.6 发布

    仓库地址:Dragact爽滑的拖拽组件 大家好,新年已经过去,大家又投入了繁忙的工作当中,由于我在国外,因此压根儿没有休息... 少说废话,上周一周的时间里,我陆陆续续的为Dragact组件进行了一系 ...

  9. IOS下图片不能显示问题的解决办法

    最近遇到这样一个问题,在HTML5手机页面中,直接给<img>标签设置宽高,即便图片路径正常,在IOS真机下也是无法显示的,而在安卓以及浏览器的模拟真机上都是正常显示的,这是为什么呢? h ...

  10. MySQL用户

    创建用户 在对 MySQL 的日常管理和实际操作中,为了避免用户恶意冒名使用 root 账号控制数据库,通常需要创建一系列具备适当权限的账号,应该尽可能地不用或少用 root 账号登录系统,以此来确保 ...