`
cloudlee8
  • 浏览: 9708 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

JS面向对象设计的最佳模式(动态原型方法)

    博客分类:
  • JS
阅读更多

1.定义类(对象模版)

动态原型方法

示例:

function Car(sColor,iDoors,iMpg) {
  this.color = sColor;
  this.doors = iDoors;
  this.mpg = iMpg;
  this.drivers = new Array("Mike","John");
  
  if (typeof Car._initialized == "undefined") {
    Car.prototype.showColor = function() {
      alert(this.color);
    };
	
    Car._initialized = true;
  }
}

 

直到检查 typeof Car._initialized 是否等于 "undefined" 之前,这个构造函数都未发生变化。这行代码是动态原型方法中最重要的部分。如果这个值未定义,构造函数将用原型方式继续定义对象的方法,然后把 Car._initialized 设置为 true。如果这个值定义了(它的值为 true 时,typeof 的值为 Boolean),那么就不再创建该方法。简而言之,该方法使用标志(_initialized)来判断是否已给原型赋予了任何方法。该方法只创建并赋值一次,传统的 OOP 开发者会高兴地发现,这段代码看起来更像其他语言中的类定义了。

 

 

2.声明和实例化

 

对象的创建方式是用关键字 new 后面跟上实例化的类的名字:

var oObject = new Object();
var oStringObject = new String();

第一行代码创建了 Object 类的一个实例,并把它存储到变量 oObject 中。第二行代码创建了 String 类的一个实例,把它存储在变量 oStringObject 中。如果构造函数无参数,括号则不是必需的。因此可以采用下面的形式重写上面的两行代码:

var oObject = new Object;
var oStringObject = new String;

 

3.调用

var car = new Car('red','2door','3');
alert(car.doors);
car.showColor();

 

4.完整示例

 

<html>
<body>

<script type="text/javascript">
function Car(sColor,iDoors,iMpg) {
  this.color = sColor;
  this.doors = iDoors;
  this.mpg = iMpg;
  this.drivers = new Array("Mike","John");
  
  if (typeof Car._initialized == "undefined") {
    Car.prototype.showColor = function() {
      alert(this.color);
    };
	
    Car._initialized = true;
  }
}

var car = new Car('red','2door','3');
alert(car.doors);
car.showColor();


</script>
<a href="http://cloud8.iteye.com/">Don't Click.</a>
</body>
</html>

 

 

 

 

分享到:
评论

相关推荐

    javascript 经典面向对象设计

    ### JavaScript经典面向对象设计 #### 标题与描述解析 标题“JavaScript经典面向对象设计”指出了本书的主要内容是关于如何使用面向对象编程(OOP)原则和技术来编写高质量、可扩展且可重用的JavaScript应用程序及...

    javascript 面向对象编程.pdf javascript 设计模式与开发实践.pdf

    这两本书——"JavaScript 面向对象编程.pdf"和"JavaScript 设计模式与开发实践.pdf"将深入探讨这些主题。 面向对象编程在JavaScript中主要体现在三个方面:封装、继承和多态。封装是指将数据和操作数据的方法捆绑在...

    JavaScript面向对象编程指南 pdf

    JavaScript是一种广泛应用于Web开发的脚本语言,..."JavaScript面向对象编程指南"这本书应该是对这一主题的详细解析,包括概念讲解、实例演示以及最佳实践,对于想要提升JavaScript编程能力的人来说是一份宝贵的资源。

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

    ### JavaScript面向对象精要 #### 一、概述 《JavaScript面向对象精要》是一本深入讲解JavaScript面向对象编程原理的专业书籍。本书由知名的前端开发者Nicholas C. Zakas撰写,全面介绍了JavaScript作为一种动态...

    javascript面向对象编程的几种模式详解

    以下是对标题和描述中提到的几种JavaScript面向对象编程模式的详细解释: 1. **构造函数与字面量结合模式** 在JavaScript中,我们可以通过构造函数和字面量语法来创建对象。构造函数用于定义对象的类型,而字面量...

    前端设计模式大全,包括工厂模式,原型模式,构造器模式等

    构造器模式类似于面向对象编程中的构造函数,用于初始化新创建对象的状态。在JavaScript中,构造函数是用来创建特定类型对象的函数,通过`new`关键字调用。不过,构造器模式并不局限于JavaScript,其他语言如...

    javascript面向对象编程PDF

    ### JavaScript面向对象编程知识点 #### 一、现代JavaScript的发展与特性 **1.1 JavaScript的演变** - **简史概述**:自诞生以来,JavaScript经历了一系列显著的变化和发展,从最初被视为一个简单的脚本语言,...

    JavaScript面向对象编程指南

    9. **面向对象最佳实践**:在JavaScript中进行面向对象编程时,需要注意一些最佳实践,例如避免全局变量,合理使用`this`关键字,理解闭包的影响,以及充分利用箭头函数和类的特性。 通过学习和掌握以上知识点,你...

    javascript面向对象

    ### JavaScript面向对象编程详解 #### 一、现代JavaScript概述 随着技术的发展,JavaScript这门语言逐渐从最初的简单脚本语言成长为现在广泛应用于Web前端、后端甚至桌面应用的强大编程工具。现代JavaScript具备...

    javascript 设计模式

    在JavaScript中,由于其特殊的原型继承机制和动态类型特性,设计模式的应用有一些独特的特点。 ### 1. 继承机制 在JavaScript中,继承主要通过原型链(Prototype Chain)实现。每个对象都有一个`__proto__`属性,...

    设计模式可复用面向对象软件的基础

    设计模式的运用不仅限于Java、C++等传统面向对象语言,也适用于Python、JavaScript等现代编程语言。在实际项目中,合理地运用设计模式可以使代码结构清晰,降低耦合度,提高代码的可重用性和可维护性。 例如,单例...

    设计模式可复用面向对象软件的基础.rar

    设计模式的应用并不仅仅局限于Java或C++等传统面向对象语言,也可以在现代编程语言如Python、JavaScript等中找到其身影。例如,使用函数式编程实现的策略模式,或者在JavaScript中的模块系统中应用的单例模式。 总...

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

    在JavaScript中创建对象的各种模式对于掌握这门语言的面向对象编程特性至关重要。JavaScript作为一门具有面向对象特性的脚本语言,虽然没有传统意义上类的概念,但它通过其他方式实现了对象的创建和继承。在...

    JavaScript面向对象继承详解

    在JavaScript中,面向对象编程(Object-Oriented Programming,简称OOP)是一种核心特性,它允许开发者创建复杂的、可复用的对象结构。本文将深入探讨JavaScript中的面向对象继承,这是理解JavaScript OOP的关键部分...

    Javascript 设计模式 很经典 第一本

    该书深入浅出地介绍了面向对象编程在JavaScript中的应用,为读者提供了丰富的设计模式实例和实践经验,帮助开发者更好地理解和掌握JavaScript的设计原则。 #### 二、面向对象编程(OOP)基础 本书首先介绍了面向...

    javascript 面对对象设计原则 (英文)

    ### JavaScript面向对象设计原则 #### 一、引言 在《JavaScript面向对象设计原则》这本书中,作者Nicholas C. Zakas深入探讨了如何利用JavaScript这门语言来实现面向对象编程(OOP)的设计原则。本书的目标是帮助...

    Javascript 设计模式之构造函数模式.zip

    总结,JavaScript的构造函数模式是创建对象的主要方式之一,它结合原型和原型链提供了面向对象编程的基础。理解并掌握这一模式有助于编写可维护、可扩展的代码。在实际开发中,构造函数模式常常与其他设计模式(如...

    Javascript面向对象设计一 工厂模式

    在JavaScript中,由于ES5标准之前并没有原生的类(class)支持,因此开发者们使用函数来模拟面向对象编程中的类和继承特性。工厂模式就是通过函数封装对象的创建过程来实现的。 在ECMAScript中,对象是通过构造函数...

Global site tag (gtag.js) - Google Analytics