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实现表头固定效果的实例代码
May 24 Javascript
JS 数字转换研究总结
Dec 26 Javascript
js实现拉幕效果的广告代码
Sep 02 Javascript
jQuery实现Tab选项卡切换效果简单演示
Nov 23 Javascript
jQuery Ajax Post 回调函数不执行问题的解决方法
Aug 15 Javascript
React学习笔记之列表渲染示例详解
Aug 22 Javascript
微信小程序实现顶部选项卡(swiper)
Jun 19 Javascript
layer子层给父层页面元素赋值,以达到向父层页面传值的效果实例
Sep 22 Javascript
webstrom Debug 调试vue项目的方法步骤
Jul 17 Javascript
React中如何引入Angular组件详解
Aug 09 Javascript
Jquery获取radio选中值实例总结
Jan 17 jQuery
Vue分页插件的前后端配置与使用
Oct 09 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方法调用模式与函数调用模式简例
2011/09/20 PHP
检查php文件中是否含有bom的函数
2012/05/31 PHP
PHP中CURL方法curl_setopt()函数的参数分享
2013/01/19 PHP
PHP间隔一段时间执行代码的方法
2014/12/02 PHP
laravel手动创建数组分页的实现代码
2018/06/07 PHP
jQuery autocomplate 自扩展插件、自动完成示例代码
2011/03/28 Javascript
actionscript与javascript的区别
2011/05/25 Javascript
Jquery实现视频播放页面的关灯开灯效果
2013/05/27 Javascript
JavaScript的模块化:封装(闭包),继承(原型) 介绍
2013/07/22 Javascript
raphael.js绘制中国地图 地图绘制方法
2014/02/12 Javascript
jQuery如何防止这种冒泡事件发生
2015/02/27 Javascript
Jquery基础教程之DOM操作
2015/08/19 Javascript
纯jquery实现模仿淘宝购物车结算
2015/08/20 Javascript
WebApi+Bootstrap+KnockoutJs打造单页面程序
2016/05/16 Javascript
JS简单实现tab切换效果的多窗口显示功能
2016/09/07 Javascript
jQuery双向列表选择器DIV模拟版
2016/11/01 Javascript
javascript高仿热血传奇游戏实现代码
2018/02/22 Javascript
vue动态设置img的src路径实例
2018/09/18 Javascript
vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
2018/09/29 Javascript
vue框架中props的typescript用法详解
2020/02/17 Javascript
python网络编程示例(客户端与服务端)
2014/04/24 Python
Python中的一些陷阱与技巧小结
2015/07/10 Python
使用Python写一个小游戏
2018/04/02 Python
opencv-python 提取sift特征并匹配的实例
2019/12/09 Python
Python利用全连接神经网络求解MNIST问题详解
2020/01/14 Python
Python对wav文件的重采样实例
2020/02/25 Python
纽约21世纪百货官网:Century 21
2016/08/27 全球购物
培训心得体会
2013/12/29 职场文书
领导检查欢迎词
2014/01/14 职场文书
个性发展自我评价
2014/02/11 职场文书
安全生产汇报材料
2014/02/17 职场文书
毕业典礼演讲稿
2014/05/13 职场文书
市场营销计划书范文
2015/01/16 职场文书
幼儿体育课教学反思
2016/02/16 职场文书
详细聊一聊mysql的树形结构存储以及查询
2022/04/05 MySQL
Win10 最新稳定版本 21H2开始推送
2022/04/19 数码科技