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 相关文章推荐
javascript之typeof、instanceof操作符使用探讨
May 19 Javascript
jquery $.each 和for怎么跳出循环终止本次循环
Sep 27 Javascript
推荐10 款 SVG 动画的 JavaScript 库
Mar 24 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
Sep 01 Javascript
js使用cookie记录用户名的方法
Nov 26 Javascript
详解javascript传统方法实现异步校验
Jan 22 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
Jun 22 Javascript
vue使用rem实现 移动端屏幕适配
Sep 26 Javascript
js实现随机8位验证码
Jul 24 Javascript
Vue动态生成表格的行和列
Jul 18 Javascript
解决vue的过渡动画无法正常实现问题
Oct 31 Javascript
Vue elementUI表单嵌套表格并对每行进行校验详解
Feb 18 Vue.js
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代码收集表单内容并写入文件的代码
2012/01/29 PHP
php生成图形(Libchart)实例
2013/11/06 PHP
利用PHP将部分内容用星号替换
2020/04/21 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
2017/02/03 PHP
javascript深入理解js闭包
2010/07/03 Javascript
JavaScript实现GriwView单列全选(自写代码)
2013/05/13 Javascript
javascript判断是否按回车键并解决浏览器之间的差异
2014/05/13 Javascript
node.js中的fs.futimesSync方法使用说明
2014/12/17 Javascript
常用DOM整理
2015/06/16 Javascript
基于javascript实现右下角浮动广告效果
2016/01/08 Javascript
BootStrap智能表单实战系列(十一)级联下拉的支持
2016/06/13 Javascript
jquery实现垂直和水平菜单导航栏
2020/08/27 Javascript
深究AngularJS中ng-drag、ng-drop的用法
2017/06/12 Javascript
Vue.extend实现挂载到实例上的方法
2019/05/01 Javascript
微信小程序select下拉框实现效果
2019/05/15 Javascript
在Layui 的表格模板中,实现layer父页面和子页面传值交互的方法
2019/09/10 Javascript
Vue实现剪贴板复制功能
2019/12/31 Javascript
js 函数性能比较方法
2020/08/24 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
2020/11/02 Javascript
[07:09]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant 选手采访
2021/03/11 DOTA
Python实现Linux下守护进程的编写方法
2014/08/22 Python
Python3.6 Schedule模块定时任务(实例讲解)
2017/11/09 Python
python导出chrome书签到markdown文件的实例代码
2017/12/27 Python
解决Python print输出不换行没空格的问题
2018/11/14 Python
Python多线程处理实例详解【单进程/多进程】
2019/01/30 Python
python爬虫开发之PyQuery模块详细使用方法与实例全解
2020/03/09 Python
scrapy结合selenium解析动态页面的实现
2020/09/28 Python
初中生自我鉴定
2014/02/04 职场文书
大专毕业生求职信
2014/07/05 职场文书
知识就是力量演讲稿
2014/09/13 职场文书
同意落户证明
2015/06/19 职场文书
2016教师学习党章心得体会
2016/01/15 职场文书
干部理论学习心得体会
2016/01/21 职场文书
《巨人的花园》教学反思
2016/02/19 职场文书
Pytorch数据读取之Dataset和DataLoader知识总结
2021/05/23 Python
Python爬虫基础之简单说一下scrapy的框架结构
2021/06/26 Python