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 相关文章推荐
跟我一起学写jQuery插件开发方法(附完整实例及下载)
Apr 01 Javascript
探索Emberjs制作一个简单的Todo应用
Nov 07 Javascript
两个数组去重的JS代码
Dec 04 Javascript
简介JavaScript中的getSeconds()方法的使用
Jun 10 Javascript
javascript简单判断输入内容是否合法的方法
May 11 Javascript
JavaScript常用判断写法大全(推荐)
May 30 Javascript
浅析jQuery操作select控件的取值和设值
Dec 07 Javascript
JavaScript-定时器0~9抽奖系统详解(代码)
Aug 16 Javascript
js 只比较时间大小的实例
Oct 26 Javascript
浅谈vue项目重构技术要点和总结
Jan 23 Javascript
详解微信小程序框架wepy踩坑记录(与vue对比)
Mar 12 Javascript
ES6数组与对象的解构赋值详解
Jun 14 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
输入值/表单提交参数过滤有效防止sql注入的方法
2013/12/25 PHP
PHP实现通过URL提取根域名
2016/03/31 PHP
php正确输出json数据的实例讲解
2018/08/21 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
Javascript 对象的解释
2008/11/24 Javascript
基于jquery的无限级联下拉框js插件
2011/10/29 Javascript
js实现的简练高效拖拽功能示例
2016/12/21 Javascript
jQuery实现的文字逐行向上间歇滚动效果示例
2017/09/06 jQuery
angularjs实现分页和搜索功能
2018/01/03 Javascript
Vue中的scoped实现原理及穿透方法
2018/05/15 Javascript
vue使用video.js进行视频播放功能
2019/07/18 Javascript
layer 刷新某个页面的实现方法
2019/09/05 Javascript
js String.prototype.trim字符去前后空格的扩展
2020/08/23 Javascript
js+css3实现炫酷时钟
2020/08/18 Javascript
基于ajax实现上传图片代码示例解析
2020/12/03 Javascript
[02:30]辉夜杯主赛事第二日胜者组半决赛 CDEC.Y赛后采访
2015/12/26 DOTA
python将人民币转换大写的脚本代码
2013/02/10 Python
Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
2015/07/27 Python
详解Python中open()函数指定文件打开方式的用法
2016/06/04 Python
Python 2/3下处理cjk编码的zip文件的方法
2019/04/26 Python
Python实现把类当做字典来访问
2019/12/16 Python
opencv python如何实现图像二值化
2020/02/03 Python
Python调用飞书发送消息的示例
2020/11/10 Python
来自世界各地的优质葡萄酒:VineShop24
2018/07/09 全球购物
英国最大的宝石首饰超市:QP Jewellers
2018/09/23 全球购物
如何在发生故障的节点上重新安装 SQL Server
2013/03/14 面试题
什么是Linux虚拟文件系统VFS
2012/01/31 面试题
基于Python 函数和方法的区别说明
2021/03/24 Python
环境科学专业大学生自荐信格式
2013/09/21 职场文书
求职自荐信怎么写
2014/03/06 职场文书
企业文化理念标语
2014/06/10 职场文书
普通党员群众路线教育实践活动心得体会
2014/11/04 职场文书
2014年大堂经理工作总结
2014/11/21 职场文书
2014小学语文教师个人工作总结
2014/12/03 职场文书
评职称个人总结
2015/03/05 职场文书
公务员岗前培训心得体会
2016/01/08 职场文书