`
purpen
  • 浏览: 785674 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javascript定义类或对象之混合的构造函数与原型方式

阅读更多

    在javascript中使用预定义对象的能力只是面向对象语言的能力的一部分,它真正的强大之处在于能够创建自己专用的类和对象.当然,javascript创建类和对象的方法有很多,但是,我这里只想说说现在最常用的定义方法之一:就是混合的构造函数与原型方式的结合来定义.

    联合使用构造函数和原型方式,就可像用其他程序设计语言一样创建对象.这种概念非常简单,即用构造函数定义对象的所有非函数属性,用原型方式定义对象的函数属性(即方法).所有函数都只创建一次,而每个对象都具有自己的对象属性实例.(这样就解决了工厂方式定义类和对象需要创建多个对象实例的问题,从而提高了性能问题.)

  1. function Car (sColor, iDoors, iMpg) {   
  2.     this.color = sColor;   
  3.     this.doors = iDoors;   
  4.     this.mpg = iMpg;   
  5.     this.drivers = new Array("Mike""Sue");   
  6. }   
  7. //添加方法   
  8. Car.prototype.showColor = function() {   
  9.     alert(this.color);   
  10. }   
  11.   
  12. var oCar1 = new Car("red"423);   
  13. var oCar2 = new Car("blue"325);   
  14.   
  15. oCar1.drivers.push("Mat");   
  16.   
  17. alert(oCar1.drivers);   //输出 "Mike, Sue, Mat"   
  18. alert(oCar2.drivers); //输出 "Mike, Sue"  

    现在就更像创建一般对象了.所有的非函数属性都在构造函数中创建,意味着又可用构造函数的参数赋予属性默认值了.因为只创建showColor()函数的一个实例,所以没有内存的浪费.

    这种方式是ECMAScript(javascript核心)采用的主要方式,它具有其他方式的特性,却没有它们的副作用.所以,再开发中最常使用的.

分享到:
评论

相关推荐

    基于JavaScript实现继承机制之构造函数+原型链混合方式的使用详解

    构造函数(对象冒充)的主要问题是必须使用构造函数方式,且无法继承通过原型定义的方法,这不是最好的选择。不过如果使用原型链,就无法使用带参数的构造函数了。开发者如何选择呢?答案很简单,两者都用。 构造...

    javascript 混合的构造函数和原型方式,动态原型方式

    JS编程中最常用两种对象类定义的方式。不管是利用下面2种方式的那一种,都可以达到相同的效果!

    JavaScript面向对象程序设计中对象的定义和继承详解

    本文实例讲述了JavaScript面向对象程序设计中对象的定义和...1.Javascript对象的定义采用混合方式【构造函数 +原型方式(prototype)】 (1)通过构造函数方式定义对象的所有非函数属性 (2)用原型方式定义对象的函数

    Javascript数组操作高级心得整理

     混合的构造函数/原型方式(常用方式) 18  动态原型方法(常用方式) 18  总结(使用哪种方式好) 18 2. 修改对象 18 (1) 创建新方法 18 (2) 重命名已有方法 19 (3) 添加与已有方法无关的方法 19 (4) 为本地对象...

    源文件程序天下JAVASCRIPT实例自学手册

    4.5.1 通过定义对象的构造函数的方法 4.5.2 通过对象直接初始化的方法 4.5.3 修改、删除对象实例的属性 4.5.4 通过原型为对象添加新属性和新方法 4.5.5 自定义对象的嵌套 4.5.6 内存的分配和释放 4.6 本章小结 第5章...

    JavaScript基础和实例代码

    4.5.1 通过定义对象的构造函数的方法 4.5.2 通过对象直接初始化的方法 4.5.3 修改、删除对象实例的属性 4.5.4 通过原型为对象添加新属性和新方法 4.5.5 自定义对象的嵌套 4.5.6 内存的分配和释放 4.6 本章小结 第5章...

    JavaScript高级程序设计 阅读笔记(十四) js继承机制的实现

    在JavaScript中继承方式的实现方式主要有以下五种:对象冒充、call()、apply()、原型链、混合方式。 下面分别介绍。 对象冒充 原理:构造函数使用this关键字给所有属性和方法赋值。因为构造函数只是一个函数,所以...

    js定义类的方法示例【ES5与ES6】

    本文实例讲述了js定义类的方法。分享给大家供大家参考,具体如下: 以下是es5标准里定义类的方法: ...上面这样用构造函数和原型混合的方法定义类,是为了每次new新实例时可以共享方法,不用创建function新

    active-document:装饰一个构造函数,使其在 mutator 后面具有属性

    活动文档我鼓励阅读源代码,因为它比文档更短... 它将函数复制到构造函数和给定对象的原型。 这称为串联继承。静力学在汽车示例中,这些将作为Car.访问(例如Car.attributeNames )。 attributeNames 已定义属性的列表

    《javaScrip开发技术大全》源代码

    • sample03.htm JavaScript与HTML混合执行 • sample04.htm 在同一个网页中使用不同脚本语言 • sample05.htm 判断浏览器对JavaScript版本的支持情况 • sample06.htm 引用外部...

    Ajax完全自学手册(PPT)

    test4Constract.htm 构造函数 Test4Fixed.htm 混合方式 dynamicType.htm 混合方式 Test4Extends.htm 继承的实现 Test4Call2.htm 伪装方法 Test4Call.htm Function对象的call()方法 Test4Apply....

    Ajax完全自学手册PPT和源代码(ptt格式)

    test4Constract.htm 构造函数 Test4Fixed.htm 混合方式 dynamicType.htm 混合方式 Test4Extends.htm 继承的实现 Test4Call2.htm 伪装方法 Test4Call.htm Function对象的call()方法 Test4Apply.htm Function对象的...

    Ajax完全自学手册(源代码).rar

    test4Constract.htm 构造函数 Test4Fixed.htm 混合方式 dynamicType.htm 混合方式 Test4Extends.htm 继承的实现 Test4Call2.htm 伪装方法 Test4Call.htm Function对象的call()方法 Test4Apply....

    JavaScript高级教程

    第 1 章 JavaScript 是什么..........3.5.4 混合的构造函数/原型方式..............................................81 3.5.5 动态原型方法..............................................82 3.5.6 混合工厂方式........

Global site tag (gtag.js) - Google Analytics