在javascript中使用预定义对象的能力只是面向对象语言的能力的一部分,它真正的强大之处在于能够创建自己专用的类和对象.当然,javascript创建类和对象的方法有很多,但是,我这里只想说说现在最常用的定义方法之一:就是混合的构造函数与原型方式的结合来定义.
联合使用构造函数和原型方式,就可像用其他程序设计语言一样创建对象.这种概念非常简单,即用构造函数定义对象的所有非函数属性,用原型方式定义对象的函数属性(即方法).所有函数都只创建一次,而每个对象都具有自己的对象属性实例.(这样就解决了工厂方式定义类和对象需要创建多个对象实例的问题,从而提高了性能问题.)
- function Car (sColor, iDoors, iMpg) {
- this.color = sColor;
- this.doors = iDoors;
- this.mpg = iMpg;
- this.drivers = new Array("Mike", "Sue");
- }
-
- Car.prototype.showColor = function() {
- alert(this.color);
- }
-
- var oCar1 = new Car("red", 4, 23);
- var oCar2 = new Car("blue", 3, 25);
-
- oCar1.drivers.push("Mat");
-
- alert(oCar1.drivers);
- alert(oCar2.drivers);
现在就更像创建一般对象了.所有的非函数属性都在构造函数中创建,意味着又可用构造函数的参数赋予属性默认值了.因为只创建showColor()函数的一个实例,所以没有内存的浪费.
这种方式是ECMAScript(javascript核心)采用的主要方式,它具有其他方式的特性,却没有它们的副作用.所以,再开发中最常使用的.
分享到:
相关推荐
JavaScript是一种基于原型的面向对象语言,其类和对象的定义方式与传统面向对象的语言(如Java或C++)有所不同。 JavaScript中定义类或函数,主要有以下几种方式: 1. 工厂方式 工厂方式是JavaScript中创建对象的...
混合构造函数和原型方式简单直观,容易理解和应用,而动态原型方式则提供了一种更为"封装"的编程风格,让代码看起来更接近于传统意义上的面向对象编程语言。不过,动态原型方式可能因为`if`语句的存在,在代码的...
构造函数(对象冒充)的主要问题是必须使用构造函数方式,且无法继承通过原型定义的方法,这不是最好的选择。不过如果使用原型链,就无法使用带参数的构造函数了。开发者如何选择呢?答案很简单,两者都用。 构造...
本文主要探讨了四种常见的创建JavaScript对象的方法:工厂方式、构造函数方式、原型方式以及混合构造函数/原型方式。 1. **工厂方式**: 工厂模式是一种设计模式,它提供了一种创建对象的最佳方式。在JavaScript中...
* 对象的创建方式有多种,包括原始方式、工厂方式、构造函数方式、原型方式、混合构造函数和原型方式、字面量方式等。 this 指针 * 在 JavaScript 中,this 指针总是指向调用该方法的对象。 * 使用 this 可以在...
在JavaScript编程中,扩展类、克隆对象以及混合类是经常会用到的技术,它们各自有其特定的用途和实现方式。 首先我们来探讨“JS扩展类”。在JavaScript中,没有传统意义上的类继承机制,但可以通过原型链...
结合了构造函数模式和原型模式的混合模式,可以将构造函数用以封装初始化对象实例的私有属性,而原型对象则用于封装方法和共享属性。这种方式兼顾了构造函数的实例封装性和原型的内存高效性。通过使用构造函数来初始...
本文将深入探讨JavaScript中的面向对象基础,包括工厂模式、构造函数模式、原型模式、混合模式和动态原型模式。 工厂模式是一种简单但有效的方式,用于创建对象,尤其是当我们需要创建具有相同结构但可能具有不同值...
类本质上是对构造函数和原型模式的一种语法糖,提供了更简洁的方式来定义类和子类。 #### 四、本书主要内容概述 本书全面覆盖了面向对象编程的基础理论,并结合JavaScript的具体实现进行讲解。 - **第一章:...
JavaScript 中定义类或对象有多种方式,包括工厂方式、构造函数方式、原型方式、混合的构造函数/原型方式和动态原型方法。 工厂方式是通过创建并返回特定类型的对象的函数来定义类或对象。例如,创建一个 Car 的...
使用类语法定义的类实际上是构造函数和原型对象的语法糖,它使得 JavaScript 的面向对象编程更加接近其他面向对象的编程语言。使用 class 定义类也支持继承、获取对象的原型等高级特性。 综上所述,JavaScript 中...
JavaScript中的对象还可以使用prototype属性来扩展新功能,或者使用构造函数及prototype混合的方式来创建对象,这些都是基于原型链的实现方式。 通过原型链的方式,JavaScript允许动态地为对象添加属性和方法,这比...
- **构造函数与原型混合方式**:同时利用构造函数和原型链进行对象创建。 - **动态原型方式**:在对象实例化后设置`prototype`。 4. **构造函数与实例**: - 构造函数用于初始化新创建的对象,例如`Person`构造...
而在需要保持每个对象具有独立属性的情况下,则可以选择通过构造函数或混合方式创建。 通过上述七种方式,我们可以根据具体需求灵活选择最适合的创建对象的方法。希望本文能够帮助开发者更好地理解和应用JavaScript...
JavaScript是一种基于原型的面向对象编程语言,它支持多种面向对象的特性,如类、继承、对象、静态成员、重载等。以下是对这些特性的详细解释: 1. **类的使用**: JavaScript中没有传统的类,而是通过构造函数来...