JavaScript面向对象程序设计教程


Posted in Javascript onMarch 29, 2016

JavaScript中对象的定义为:无序属性的集合,其属性可以包含基本值、对象或者函数。可以把对象想象成散列表,就是一组名值对(key:value),其中值可以是数据或函数,每个对象都是基于一个引用类型创建的。

理解对象

前面的博客里写过创建对象的方式有两种,一种是创建一个object的实例,另一种是使用对象字面量法:

var person = new Object();
person.sex = man;
person.name = bluce
person.age = 58;
person.sayHi() = function(){
console.log('Hello World!');
}

但更多的是采用下面一种方式

var person = {
sex:man,
name:'bluce',
age:'58',
sayHi:function(){
console.log('Hello World!');
}
}

创建对象

使用Object构造函数和对象字面量法都可以创建单个对象,但有明显的缺点:使用同一个接口创建很多对象,会产生大量的重复代码。常用的创建对象方式主要有工厂模式、构造函数模型、原型模式。

这里有自己的一个疑问:采用AMD规范后,编写的单个js文件,可以看做一个模块,也可以说是一个“类”,现在与JavaScript中的这个“类”概念有点混淆了,希望后面能分清应用场合吧。

关于JavaScript面向对象程序设计教程小编就给大家介绍到这里,希望对大家有所帮助!

 下面给大家补充JavaScript面向对象设计——工厂模式

 工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程,可以用函数来封装以特定接口创建对象的细节。

之前在Java的DAO中用过这种设计模式,比较容易理解。

function createPerson(name,age,sex){
  var obj = new Object();
  obj.name = name;
  obj.age = age;
  obj.sex = sex;
  obj.sayHi() = function(){
    console.log(this.name);
  }; //引号不要漏掉,养成好的习惯
  return obj;
}
var person1 = createPerson("bluce",58,"man");
var person2 = createPerson("john",68,"man");

使用该函数可以根据接收的参数创建一个包含必要信息的Person对象。可以无数次地调用这个函数,每次都会返回一个包含三个属性和一个方法的对象。工厂模式解决了创建多个相似对象的问题,但没有解决对象识别的问题(如何知道一个对象的类型)

Javascript 相关文章推荐
prototype 学习笔记整理
Jul 17 Javascript
node.js中的events.emitter.removeAllListeners方法使用说明
Dec 10 Javascript
node.js中的fs.closeSync方法使用说明
Dec 17 Javascript
javascript实现 百度翻译 可折叠的分享按钮列表
Mar 12 Javascript
javascript实现youku的视频代码自适应宽度
May 25 Javascript
gameboy网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
Feb 21 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
Apr 07 Javascript
JQuery统计input和textarea文字输入数量(代码分享)
Dec 29 Javascript
微信小程序教程系列之新建页面(4)
Apr 17 Javascript
解析vue中的$mount
Dec 21 Javascript
vue两个组件间值的传递或修改方式
Jul 04 Javascript
Element-ui el-tree新增和删除节点后如何刷新tree的实例
Aug 31 Javascript
jQuery实现图片加载完成后改变图片大小的方法
Mar 29 #Javascript
Web前端开发工具——bower依赖包管理工具
Mar 29 #Javascript
Jquery操作cookie记住用户名
Mar 29 #Javascript
jQuery简单实现提交数据出现loading进度条的方法
Mar 29 #Javascript
Javascript设计模式之观察者模式(推荐)
Mar 29 #Javascript
AngularJS directive返回对象属性详解
Mar 28 #Javascript
Boostrap模态窗口的学习小结
Mar 28 #Javascript
You might like
打造计数器DIY三步曲(上)
2006/10/09 PHP
解析centos中Apache、php、mysql 默认安装路径
2013/06/25 PHP
zf框架db类的分页示例分享
2014/03/14 PHP
PHP模拟QQ登录的方法
2015/07/29 PHP
一个简单安全的PHP验证码类、PHP验证码
2016/09/24 PHP
js 方法实现返回多个数据的代码
2009/04/30 Javascript
一款js和css代码压缩工具[附JAVA环境配置方法]
2010/04/16 Javascript
JavaScript 原型继承之构造函数继承
2011/08/26 Javascript
点击表单提交时出现jQuery没有权限的解决方法
2014/07/23 Javascript
javascript实现带节日和农历的日历特效
2015/02/01 Javascript
详解JavaScript中常用的函数类型
2015/11/18 Javascript
JavaScript基于自定义函数判断变量类型的实现方法
2016/11/23 Javascript
VUE在for循环里面根据内容值动态的加入class值的方法
2018/08/12 Javascript
bootstrap实现点击删除按钮弹出确认框的实例代码
2018/08/16 Javascript
vue favicon设置以及动态修改favicon的方法
2018/12/21 Javascript
详解Js里的for…in和for…of的用法
2019/03/28 Javascript
微信小程序中网络请求缓存的解决方法
2019/12/29 Javascript
[49:21]2018DOTA2亚洲邀请赛3月30日 小组赛B组 Effect VS iG
2018/03/31 DOTA
[01:00:53]OG vs IG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python的Django框架中模板碎片缓存简介
2015/07/24 Python
使用Eclipse如何开发python脚本
2018/04/11 Python
Python设计模式之迭代器模式原理与用法实例分析
2019/01/10 Python
python opencv摄像头的简单应用
2019/06/06 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
2020/03/19 Python
对Pytorch 中的contiguous理解说明
2021/03/03 Python
怎样在程序里获得一个空指针
2015/01/24 面试题
办公室内勤岗位职责范本
2013/12/09 职场文书
研究生毕业鉴定
2014/01/29 职场文书
计算机维护专业推荐信
2014/02/27 职场文书
主要负责人任命书
2014/06/06 职场文书
铣床操作工岗位职责
2014/06/13 职场文书
加强作风建设工作总结
2014/10/23 职场文书
民主生活会汇报材料
2014/12/15 职场文书
狂人日记读书笔记
2015/06/30 职场文书
sqlserver2017共享功能目录路径不可改的解决方法
2021/04/16 SQL Server
TV动画「神渣☆爱豆」公开第一弹主视觉图
2022/03/21 日漫