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 相关文章推荐
js中访问html中iframe的文档对象的代码[IE6,IE7,IE8,FF]
Jan 08 Javascript
Js数组排序函数sort()介绍
Jun 08 Javascript
JavaScript获取数组最小值和最大值的方法
Jun 09 Javascript
js实现iPhone界面风格的单选框和复选框按钮实例
Aug 18 Javascript
js判断移动端是否安装某款app的多种方法
Dec 18 Javascript
jQuery使用ajax跨域获取数据的简单实例
May 18 Javascript
JS实现禁止鼠标右键的功能
Oct 15 Javascript
JS正则子匹配实例分析
Dec 22 Javascript
JavaScript实现重力下落与弹性效果的方法分析
Dec 20 Javascript
微信小程序mpvue点击按钮获取button值的方法
May 29 Javascript
Vue中全局变量的定义和使用
Jun 05 Javascript
如何在微信小程序中实现Mixins方案
Jun 20 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
php面向对象全攻略 (六)__set() __get() __isset() __unset()的用法
2009/09/30 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
2014/05/15 PHP
Smarty中调用FCKeditor的方法
2014/10/27 PHP
php获取系统变量方法小结
2015/05/29 PHP
PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)
2017/05/26 PHP
javascript一点特殊用法
2008/05/28 Javascript
jquery下异步提交表单 异步跨域提交表单
2010/11/17 Javascript
js 幻灯片的实现
2011/12/06 Javascript
JavaScript中操作字符串之localeCompare()方法的使用
2015/06/06 Javascript
利用jQuery中的ajax分页实现代码
2016/02/25 Javascript
Angular2 组件交互实例详解
2017/08/24 Javascript
详解从买域名到使用pm2部署node.js项目全过程
2018/03/07 Javascript
js实现鼠标单击Tab表单切换效果
2018/05/16 Javascript
Vue 实现从文件中获取文本信息的方法详解
2019/10/16 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
2019/12/04 Javascript
python三元运算符实现方法
2013/12/17 Python
python通过pil模块将raw图片转换成png图片的方法
2015/03/16 Python
详解在Python程序中使用Cookie的教程
2015/04/30 Python
numpy找出array中的最大值,最小值实例
2018/04/03 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
2018/10/14 Python
python实现简单加密解密机制
2019/03/19 Python
keras 多任务多loss实例
2020/06/22 Python
简单了解Django项目应用创建过程
2020/07/06 Python
python按顺序重命名文件并分类转移到各个文件夹中的实现代码
2020/07/21 Python
conda安装tensorflow和conda常用命令小结
2021/02/20 Python
售后服务科岗位职责范文
2013/11/13 职场文书
电信专业毕业生推荐信
2013/11/18 职场文书
考试作弊被抓检讨书
2014/01/10 职场文书
关于安全的标语
2014/06/10 职场文书
餐厅感恩节活动策划方案
2014/10/11 职场文书
铁人纪念馆观后感
2015/06/16 职场文书
2016年中秋祝酒词
2015/11/26 职场文书
2019年家电促销广告语集锦
2019/10/21 职场文书
MySQL表的增删改查(基础)
2021/04/05 MySQL
python tqdm用法及实例详解
2021/06/16 Python
LyScript实现绕过反调试保护的示例详解
2022/08/14 Python