JavaScript面向对象程序设计教程

 更新时间:2016年03月29日 11:48:43   作者:鳄山维虾壳集思园  
这篇文章主要介绍了JavaScript面向对象程序设计教程的相关资料,需要的朋友可以参考下

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避免代码的重复执行经验技巧分享

    经常会发现一个问题,那就是重复的代码执行,下面就是一些在查看它们的源代码时发现一些问题,把这些分享给大家,希望能让你们更加简洁高效的写出JavaScript代码
    2014-04-04
  • javascript数组去重方法汇总

    javascript数组去重方法汇总

    数组去重复是一个常见的需求,我们暂时考虑同类型的数组去重复。主要是理清思路和考虑下性能。以下方法,网上基本都有,这里只是简单地总结一下。
    2015-04-04
  • JS打字效果的动态菜单代码分享

    JS打字效果的动态菜单代码分享

    这篇文章主要介绍了JS打字效果的动态菜单,推荐给大家,有需要的小伙伴可以参考下。
    2015-08-08
  • TypeScript入门-接口

    TypeScript入门-接口

    在TypeScript里,接口的作用就是为这些类型命名和为你的代码或第三方代码定义契约。本文将详细介绍TypeScript接口的相关知识。
    2017-03-03
  • js+html5实现canvas绘制椭圆形图案的方法

    js+html5实现canvas绘制椭圆形图案的方法

    这篇文章主要介绍了js+html5实现canvas绘制椭圆形图案的方法,涉及html5图形绘制的基础技巧,感兴趣的朋友可以参考一下
    2016-05-05
  • JavaScript中的AOP编程的基本实现

    JavaScript中的AOP编程的基本实现

    面向切面编程给我们提供了一个方法,让我们可以在不修改目标逻辑的情况下,将代码注入到现有的函数或对象中。今天通过本文给大家分享JavaScript中的AOP编程的基本实现方法,需要的朋友参考下吧
    2021-07-07
  • JavaScript 大数据相加的问题

    JavaScript 大数据相加的问题

    写一个函数处理大数据的相加问题,所谓的大数据是指超出了整型,长整型之类的常规数据类型表示范围的数据。实现语言不限。
    2011-08-08
  • 详解ES6中的let命令

    详解ES6中的let命令

    let是ES6里面新的复制命令,let赋值命令只可以在{}代码块中被调用。这篇文章主要介绍了ES6中的let命令,需要的朋友可以参考下
    2016-12-12
  • 火狐下table中创建form导致两个table之间出现空白

    火狐下table中创建form导致两个table之间出现空白

    js加入form导致两个table之间出现空白,还有另一种说法在table中创建form表单是不符合DOM标准的,会导致post失效,以及js数据传输失效
    2013-09-09
  • 微信小程序如何加载数据库真实数据的实现

    微信小程序如何加载数据库真实数据的实现

    这篇文章主要介绍了微信小程序如何加载数据库真实数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03

最新评论