`

我的现代Javascript之旅(一)启程、面向对象的现代Javascript

阅读更多

    Javascript曾经被认为是一门小玩具似的脚本语言。大部分

  的程序员都觉得它只是辅助工具,用来页面端校验——仅此

  而已。随着Javascript语言的演变,其功能越来越强大。直到

  Ajax的风行,大家的目光终于聚焦到了这个不起眼的家伙——  这就像现在很流行的一句话:怀才就像怀孕,时间久了才能

  被看出来。

1.1 现代Javascript中的类和方法

接下来我们看一段面向对象的Javascript代码:

 

//员工类的构造方法

function Employee(id, name){

   this.id = id;

   this.name = name;

  

   //员工类的一个普通方法

   this.display = function(){

          return this.id + ' ' + this.name;

   }

}

 

//创建一个员工类的实例——直接定义

var employee = new Employee('10001', 'chanson');

alert('直接定义:'+employee.display());        

 

 

 

   从上面的代码可以看出,Javascript作为弱类型的语言,

  有以下特点:

l       不需要预先定义好对应的域——全局变量。

l       类的普通方法可以定义在其构造方法中。

   当然,并不是说类的普通方法只能定义在其构造方法中,

  下面是一段把普通方法定义在外面的代码:

  //员工类的一个普通方法(显示)

    Employee.prototype.display = function(){

               return this.getId() + ' ' + this.getName();

}

  可以看出:这里的关键在于“prototype”。

 

  另外,从对象的实例化来看,跟JavaC#等面向对象语言没

  什么区别。

1.2 多对象的实例化——数组

   对于Javascript语言,多对象的存储主要是使用数组。

  下面是一段对象数组的实例化的代码:

 

//员工类的构造方法

function Employee(id, name){

   this.id = id;

   this.name = name;

   this.getName = function(){

          return this.name;

   }

   this.getId = function(){

          return this.id;

   }

}

 

 

//员工类的一个普通方法(显示)

Employee.prototype.display = function(){

          return this.getId() + ' ' + this.getName();

}

 

//部门类的构造方法

function Department(employee){

   this.employee = employee;

}

 

//部门类的一个普通方法(显示)

Department.prototype.display = function(){

      var str = '';

          for(var i = 0; i < this.employee.length; i++){

               str += ' \n ' + this.employee[i].display();

          }

          return str;

}

 

 

//创建一个Department类的实例(对象数组方式)

var department= new Department([

          new Employee('1001','chanson'),

     new Employee('1002','John Resig')

]);

 

alert('对象数组的实例化方式:'+department.display());

1.3 匿名类——对象实例的直接声明

接触过Ext或者别的js库的朋友,一定看到过下面这样语法:

1.3.1 匿名类的单对象实例化

//创建一个员工类的实例——对象实例的直接声明

//没有具体的类名

//没有具体的构造方法

var employee = {

    id: '1001',

    name:'chanson',

    display:function(){

               return this.id + ' ' + this.name;

    }

};

 

alert('对象实例的直接声明:'+employee.display());

 

     匿名类——对象实例的直接声明是现代Javascript的一个

  特色。从例子中我们可以看到:没有具体的类名,没有具体

  的构造方法。把对象的定义和实例化混在一起。

1.3.2 匿名类的多对象实例化

  下面是多对象实例化的例子:

 

//部门类的构造方法

function Department(employee){

   this.employee = employee;

}

 

//在构造方法外面构造一个普通方法(显示)

Department.prototype.display = function(){

     var str = '';

     for(var i = 0; i < this.employee.length; i++){

         str += ' \n ' + this.employee[i].display();

     }

     return str;

}

 

var department = new Department([

    {

        id: '1001',

        name:'chanson',

        display:function(){

              return this.id + ' ' + this.name;

        }

    },

    {

        id: '1002',

        name:'John Resig',

        display:function(){

              return this.id + ' ' + this.name;

        }

    }

]);

 

alert('多对象实例的直接声明:'+department.display());

 

 

2
1
分享到:
评论
1 楼 willim 2008-09-08  
不错,给楼主顶

相关推荐

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

    Zakas编写,是面向对象编程领域中的权威指南之一,尤其针对JavaScript这门语言。作者深入浅出地介绍了面向对象编程的基本原理以及如何将这些原理应用于JavaScript中。 #### 二、面向对象编程基础 面向对象编程...

    javascript面向对象编程(中文).pdf

    面向对象编程是现代JavaScript的核心之一,它通过构造函数、原型链等机制实现了类和继承的概念。掌握这些基本概念对于构建高效、可维护的JavaScript应用至关重要。同时,合理利用现有的测试工具和框架可以极大地提高...

    JAVASCRIPT 面向对象编程精要

    面向对象编程(OOP)作为一种重要的编程范式,在JavaScript中也有独特的实现方式。 #### 二、JavaScript的特性概述 JavaScript是一种基于原型的语言,这意味着它不像传统的面向对象语言(如Java或C++)那样拥有类的...

    JavaScript学习深入—面向对象编程

    JavaScript作为一种动态的、弱类型的语言,其核心特点之一在于它灵活的对象模型。尽管JavaScript的基础架构支持面向对象编程(OOP),但在语言层面,对象并非基本数据类型。相反,JavaScript以函数为中心,通过函数来...

    javascript面向对象编程

    面向对象编程的基础知识及其在JavaScript中的运用;数据类型、操作符以及流程控制语句;函数、闭包、对象和原型等概念,以代码重用为目的的继承模式;BOM、DOM、浏览器事件、AJAX和JSON;如何实现JavaScript中缺失的...

    第15章 javascript面向对象与原型

    在深入讲解JavaScript面向对象与原型的知识点之前,首先需要了解JavaScript的基础知识。在JavaScript中,面向对象编程(OOP)的概念虽然存在,但是它的实现与传统基于类的语言有所不同。ECMAScript,也就是...

    JavaScript面向对象编程指南

    JavaScript面向对象编程指南

    JavaScript面向对象编程指南.pdf

    JavaScript是一种高级的、解释型的编程语言,它支持面向对象的编程范式,允许开发者创建对象、使用继承和多态等面向对象的特性。以下是关于JavaScript面向对象编程的一些关键知识点: 1. 对象:在JavaScript中,...

    javascript面向对象

    3. **ES6类语法**:现代JavaScript提供了更接近传统面向对象语言的类语法,使得定义类和创建对象更加直观。例如: ```javascript class Person { constructor(name, age) { this.name = name; this.age = age; ...

    JavaScript面向对象编程指南(第2版).rar

    面向对象编程(Object-Oriented Programming,OOP)是JavaScript中的一个重要概念,它允许开发者通过对象来组织代码,提高可读性和可维护性。本指南的第二版深入探讨了JavaScript的面向对象特性,旨在帮助开发者更好...

    JavaScript面向对象编程指南 pdf

    面向对象编程(Object-Oriented Programming,OOP)是JavaScript中的一个重要概念,它允许开发者以更加模块化、可复用的方式组织代码。下面将详细探讨JavaScript面向对象编程的基本原理、特性以及实际应用。 1. **...

    JavaScript面向对象基础.ppt

    在JavaScript中,面向对象编程(OOP)是其核心概念之一,允许开发者通过类和对象来组织和管理代码,提高代码的可重用性和可维护性。 8.1 面向对象术语 面向对象编程的基础包括类、对象、继承和多态等概念。类是对象...

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

    《JavaScript面向对象精要》是一本深入讲解JavaScript面向对象编程原理的专业书籍。本书由知名的前端开发者Nicholas C. Zakas撰写,全面介绍了JavaScript作为一种动态语言如何支持面向对象编程模式,并探讨了在实际...

    javascript高级精品教程-面向对象专题构建自己的js库.part02

    javascript高级精品教程-面向对象专题构建自己的js库.part02

    现代JavaScript教程

    原型链是JavaScript实现继承的方式,理解这一机制能帮助开发者更好地利用面向对象编程。 三、闭包与作用域 闭包是JavaScript的一个重要特性,它允许函数访问并操作其词法作用域内的变量,即使该函数在其外部被调用...

    JavaScript面向对象编程

    ### JavaScript面向对象编程知识点 #### 一、现代JavaScript编程概览 现代JavaScript经历了从一个简单的脚本语言到一个成熟、广泛应用于构建复杂应用的强大编程语言的转变。这门语言不仅适用于网页开发,还广泛用于...

    javascript面向对象编程指南 2nd

    javascript面向对象编程指南 2nd英文版,英文名:Object-Oriented JavaScript。 What you will learn from this book The basics of object-oriented programming, and how to apply it in the JavaScript ...

Global site tag (gtag.js) - Google Analytics