`
purpen
  • 浏览: 796809 次
  • 性别: 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是一种基于原型的面向对象语言,其类和对象的定义方式与传统面向对象的语言(如Java或C++)有所不同。 JavaScript中定义类或函数,主要有以下几种方式: 1. 工厂方式 工厂方式是JavaScript中创建对象的...

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

    混合构造函数和原型方式简单直观,容易理解和应用,而动态原型方式则提供了一种更为"封装"的编程风格,让代码看起来更接近于传统意义上的面向对象编程语言。不过,动态原型方式可能因为`if`语句的存在,在代码的...

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

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

    javascript工厂方式定义对象.docx

    本文主要探讨了四种常见的创建JavaScript对象的方法:工厂方式、构造函数方式、原型方式以及混合构造函数/原型方式。 1. **工厂方式**: 工厂模式是一种设计模式,它提供了一种创建对象的最佳方式。在JavaScript中...

    Web程序开发:第14章 JavaScript面向对象.pdf

    * 对象的创建方式有多种,包括原始方式、工厂方式、构造函数方式、原型方式、混合构造函数和原型方式、字面量方式等。 this 指针 * 在 JavaScript 中,this 指针总是指向调用该方法的对象。 * 使用 this 可以在...

    JS扩展类,克隆对象与混合类实例分析

    在JavaScript编程中,扩展类、克隆对象以及混合类是经常会用到的技术,它们各自有其特定的用途和实现方式。 首先我们来探讨“JS扩展类”。在JavaScript中,没有传统意义上的类继承机制,但可以通过原型链...

    在javascript中创建对象的各种模式解析

    结合了构造函数模式和原型模式的混合模式,可以将构造函数用以封装初始化对象实例的私有属性,而原型对象则用于封装方法和共享属性。这种方式兼顾了构造函数的实例封装性和原型的内存高效性。通过使用构造函数来初始...

    JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)

    本文将深入探讨JavaScript中的面向对象基础,包括工厂模式、构造函数模式、原型模式、混合模式和动态原型模式。 工厂模式是一种简单但有效的方式,用于创建对象,尤其是当我们需要创建具有相同结构但可能具有不同值...

    面向对象JavaScript精要(英文原版pdf)

    类本质上是对构造函数和原型模式的一种语法糖,提供了更简洁的方式来定义类和子类。 #### 四、本书主要内容概述 本书全面覆盖了面向对象编程的基础理论,并结合JavaScript的具体实现进行讲解。 - **第一章:...

    JavaScript高级程序设计 阅读笔记(十三) js定义类或对象

    JavaScript 中定义类或对象有多种方式,包括工厂方式、构造函数方式、原型方式、混合的构造函数/原型方式和动态原型方法。 工厂方式是通过创建并返回特定类型的对象的函数来定义类或对象。例如,创建一个 Car 的...

    javaScript中定义类或对象的五种方式总结

    使用类语法定义的类实际上是构造函数和原型对象的语法糖,它使得 JavaScript 的面向对象编程更加接近其他面向对象的编程语言。使用 class 定义类也支持继承、获取对象的原型等高级特性。 综上所述,JavaScript 中...

    Javascript基于对象基础.pdf

    JavaScript中的对象还可以使用prototype属性来扩展新功能,或者使用构造函数及prototype混合的方式来创建对象,这些都是基于原型链的实现方式。 通过原型链的方式,JavaScript允许动态地为对象添加属性和方法,这比...

    面向对象的JavaScript.doc

    这种模式结合了构造函数和原型的优点,通常在构造函数中定义私有属性(不可被其他对象直接访问),而在原型中定义公共属性和方法。这样,每个实例都有自己独立的私有属性,而共享公共方法,有效地避免了值的不必要...

    韩顺平 javascript 授课笔记

    - **构造函数与原型混合方式**:同时利用构造函数和原型链进行对象创建。 - **动态原型方式**:在对象实例化后设置`prototype`。 4. **构造函数与实例**: - 构造函数用于初始化新创建的对象,例如`Person`构造...

    javascript面向对象创建对象的方式小结.docx

    而在需要保持每个对象具有独立属性的情况下,则可以选择通过构造函数或混合方式创建。 通过上述七种方式,我们可以根据具体需求灵活选择最适合的创建对象的方法。希望本文能够帮助开发者更好地理解和应用JavaScript...

Global site tag (gtag.js) - Google Analytics