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实现相同内容合并单元格的代码
Jan 12 Javascript
DWR实现模拟Google搜索效果实现原理及代码
Jan 30 Javascript
js禁止页面复制功能禁用页面右键菜单示例代码
Aug 29 Javascript
javascript将数字转换整数金额大写的方法
Jan 27 Javascript
jQuery中选择器的基础使用教程
May 23 Javascript
微信小程序 闭包写法详细介绍
Dec 14 Javascript
了解ESlint和其相关操作小结
May 21 Javascript
解决vue的变量在settimeout内部效果失效的问题
Aug 30 Javascript
解决eclipse中没有js代码提示的问题
Oct 10 Javascript
JS中创建自定义类型的常用模式总结【工厂模式,构造函数模式,原型模式,动态原型模式等】
Jan 19 Javascript
微信小程序mpvue点击按钮获取button值的方法
May 29 Javascript
JS函数参数的传递与同名参数实例分析
Mar 16 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实现的方程求解示例分析
2016/11/11 PHP
php使用imagecopymerge()函数创建半透明水印
2018/01/25 PHP
PHP利用递归函数实现无限级分类的方法
2019/03/22 PHP
JavaScript 放大镜 移动镜片效果代码
2011/05/09 Javascript
javaScript中slice函数用法实例分析
2015/06/08 Javascript
详解jQuery Mobile自定义标签
2016/01/06 Javascript
基于JavaScript实现图片点击弹出窗口而不是保存
2016/02/06 Javascript
基于Jquery插件Uploadify实现实时显示进度条上传图片
2020/03/26 Javascript
为jQuery-easyui的tab组件添加右键菜单功能的简单实例
2016/10/10 Javascript
Vue中引入样式文件的方法
2017/08/18 Javascript
解决ie img标签内存泄漏的问题
2017/10/13 Javascript
nodejs实现OAuth2.0授权服务认证
2017/12/27 NodeJs
微信小程序wepy框架学习和使用心得详解
2019/05/24 Javascript
Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示
2019/06/26 Javascript
vue仿ios列表左划删除
2019/09/26 Javascript
js数组相减简单示例【删除a数组所有与b数组相同元素】
2020/03/04 Javascript
在Webpack中用url-loader处理图片和字体的问题
2020/04/28 Javascript
JavaScript数组常用的增删改查与其他属性详解
2020/10/13 Javascript
jquery插件懒加载的示例
2020/10/24 jQuery
Python运行的17个时新手常见错误小结
2012/08/07 Python
Python fileinput模块使用介绍
2014/11/30 Python
答题辅助python代码实现
2018/01/16 Python
python实现图片筛选程序
2018/10/24 Python
python+opencv实现阈值分割
2018/12/26 Python
python画图把时间作为横坐标的方法
2019/07/07 Python
Django使用中间件解决前后端同源策略问题
2019/09/02 Python
python实现名片管理器的示例代码
2019/12/17 Python
python编写softmax函数、交叉熵函数实例
2020/06/11 Python
Python读取Excel数据并生成图表过程解析
2020/06/18 Python
记一次django内存异常排查及解决方法
2020/08/07 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
2020/08/24 Python
一款纯css3实现的非常实用的鼠标悬停特效演示
2014/11/05 HTML / CSS
英国工艺品购物网站:Minerva Crafts
2018/01/29 全球购物
大队干部竞选演讲稿
2014/04/28 职场文书
暑假安全教育广播稿
2014/09/10 职场文书
mysql中varchar类型的日期进行比较、排序等操作的实现
2021/11/17 MySQL