好程序员教程分享Javascript设计模式
好程序员教程分享Javascript设计模式
方法一 对象字面量表示法
在对象字面量表示法中,一个对象被描述为一组包含在大括号中,以逗号分隔的 name/value 对。对象内的名称可以是字符串或标识符,后面跟着一个冒号。对象中最后一个 name/value 对不加逗号,否则会出错。
/**
1.
* 使用字面量表示法定义模块
2.
*/
3.
var myModule = {
4.
myProperty: "someValue",
5.
myConfig: {
6.
useCaching: true,
7.
language: "en"
8.
},
9.
myMethod: function () {
10.
console.log("the first method");
11.
},
12.
myMethod2: function () {
13.
console.log("the second method");
14.
},
15.
};
console.log(myModule.myProperty); // someValue
1.
console.log(myModule.myConfig); // {useCaching: true, language: 'en'}
2.
console.log(myModule.myConfig.useCaching); // true
3.
myModule.myMethod(); // the first method
4.
myModule.myMethod2(); // the second method
方法二 Module模式
Module模式使用闭包封装“私有”状态和组织。它提供了一种包装混合公有/私有方法和变量的方式
,防止其污染全局命名空间,防止其泄露到全局作用域。通过该模式,只需返回一个公有API,而其他的一切则都维持在私有闭包里。
/**
1.
* Module方法定义
2.
*/
3.
var myNameSpace = (function () {
4.
// 私有变量
5.
var myPrivateVar = 0;
6.
// 私有函数
7.
var myPrivateMethod = function (foo) {
8.
console.log(foo);
9.
};
10.
// 公有API
11.
return {
12.
// 公有变量
13.
myPublicVar: "foo",
14.
// 公有方法
15.
myPublicFunction: function (bar) {
16.
// 操作私有变量
17.
myPrivateVar ++;
18.
// 调用私有函数
19.
myPrivateMethod(bar);
20.
},
21.
// 公有方法二
22.
myPublicFunction2: function () {
23.
console.log("success");
24.
}
25.
};
26.
}) ();
console.log(myNameSpace.myPrivateVar); // undefined
1.
2.
console.log(myNameSpace.myPrivateVar); // undefined
3.
console.log(myNameSpace.myPublicVar); // foo
4.
console.log(myNameSpace.myPublicFunction); // Function
5.
myNameSpace.myPublicFunction2(); // success
6.
myNameSpace.myPublicFunction("i am first"); // i am first
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
好程序员分享javascript中数组化的一般见解
好程序员分享javascript中数组化的一般见解,数组化浏览器中存在许多类数组对象,往往对类数组操作比较麻烦,没有数组那些非常方便的方法,在这种情况下,就有了数组化方法。数组化的一般方法1.第一种也是我们最常见的的方法,[].slice.call方法function toArray(obj){1. return [].slice.call(obj); 2. //Array.prototype.slice.call(); 3. } Ps:这种方法,其实就是引用方法,注释的部分为完全写法,返回的就是一个数组对象。 2.第二种方法借鉴的是jq中的makeArray方法function makeArray(obj){1. var target = []; 2. if(obj != null){ 3. var i = obj.length; 4. if(i = null || typeof obj === 'string' || typeof obj === 'function' ||5.obj.setInterval){// 如果是字符串、函数win对象,就把这个元素付给创建数组的第一个元...
- 下一篇
面试心得与总结——BAT、网易、蘑菇街
之前实习的时候就想着写一篇面经,后来忙就给忘了,现在找完工作了,也是该静下心总结一下走过的路程了,我全盘托出,奉上这篇诚意之作,希望能给未来找工作的人一点指引和总结, 也希望能使大家少走点弯路 , 如果能耐心读完,相信对你会找到你需要的东西。 一、心态 心态很重要! 心态很重要! 心态很重要! 重要的事情说三遍,这一点我觉得是必须放到前面来讲。 找工作之前,有一点你必须清楚,就是找工作是一件看缘分的事情,不是你很牛逼,你就一定能进你想进的公司,都是有一个概率在那。如果你基础好,项目经验足,同时准备充分,那么你拿到offer的概率就会比较高;相反,如果你准备不充分,基础也不好,那么你拿到offer的概率就会比较低,但是你可以多投几家公司,这样拿到offer的几率就要大一点,因为你总有运气好的时候。所以,不要惧怕面试,刚开始失败了没什么的,多投多尝试,面多了你就自然能成面霸了。得失心也不要太重,最后每个人都会有offer的。 还有一个对待工作的心态,有些人可能觉得自己没有动力去找一个好工作。其实你需要明白一件事情,你读了十几二十年的书,为的是什么,最后不就是为了找到一个好工作么。现在到了关...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Hadoop3单机部署,实现最简伪集群
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果