JavaScript面向对象编程指南--第一章 面向对象的JavaScript

1、JavaScript简介

          JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早的Javascript应用于HTML网页中,为了添加网页的动态效果。

2、JavaScript命名的由来

      在1995年时,由Netscape公司的Brendan Eich,在网景浏览器上首次设计实现而成。因为NetscapeSun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript

     为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格,因为JavaScript兼容于ECMA标准,因此也称为ECMAScript

3、JavaScript的组成

  (1)ECMAScript---语言的核心组成部分(即变量,函数,循环等等),这部分独立于浏览器而存在,并且可以在其他的浏览器中运行

  (2)DOM(Document Object Model)文档对象模型,它实际上是提供了一种与HTML,XML文档交互的方式,描述处理网页内容的方法和接口

   (3)BOM(Browser Object  Model))浏览器对象模型,这实际上是与浏览器环境有关的对象模型,原本没有任何标准,但是HTML5诞生之后,人们才定义了一些浏览器之间通用的对象标准。

4、JavaScript的主要特点

(1)脚本语言。JavaScript是一种解释型的脚本语言,C、C++等语言先编译后执行,而JavaScript是在程序的运行过程中逐行进行解释。
(2)基于对象。JavaScript是一种基于对象的脚本语言,它不仅可以创建对象,也能使用现有的对象。
(3)简单。JavaScript语言中采用的是弱类型的变量类型,对使用的数据类型未做出严格的要求,是基于Java基本语句和控制的脚本语言,其设计简单紧凑。
(4)动态性。JavaScript是一种采用事件驱动的脚本语言,它不需要经过Web服务器就可以对用户的输入做出响应。在访问一个网页时,鼠标在网页中进行鼠标点击或上下移、窗口移动等操作JavaScript都可直接对这些事件给出相应的响应。
(5)跨平台性。JavaScript脚本语言不依赖于操作系统,仅需要浏览器的支持。因此一个JavaScript脚本在编写后可以带到任意机器上使用,前提上机器上的浏览器支 持JavaScript脚本语言,目前JavaScript已被大多数的浏览器所支
不同于服务器端脚本语言,例如PHP,JavaScript主要被作为客户端脚本语言在用户的浏览器上运行,不需要服务器的支持。所以在早期程序员比较青睐于JavaScript以减少对服务器的负担,而与此同时也带来另一个问题:安全性。
而随着服务器的强壮,虽然程序员更喜欢运行于服务端的脚本以保证安全,但JavaScript仍然以其跨平台、容易上手等优势大行其道。同时,有些特殊功能(AJAX)必须依赖Javascript在客户端进行支持。随着引擎如V8和框架如node.js的发展,及其事件驱动及异步IO等特性,JavaScript逐渐被用来编写服务器端程序。

5、面向对象的程序设计

面向对象用到的概念如下所示
  (1)对象,方法,属性
 (2)类
 (3)封装
 (4)聚合
 (5)重用和继承
 (6)多态

对象(名词):所谓对象是指“事物”在程序设计语言中的表现形式这里的事物可以是任何东西,我们可以看到它们具有某些明确特征,能执行某些动作这些对象特征就叫做属性(形容词),动作称之为方法(动词)。

类:实际上就是对象的设计蓝图或制作配方。类更多的是一种模板,而对象就是在这些模版的基础上被创建出来的实体(在JavaScript中,没有类的概念,该语言的一切都是基于对象的,其依靠的是一套原型(prototype)系统,而原型本身实际上也是一种对象

封装:主要阐述对象中包含的内容。通常包括:

  • 相关数据(用于存储属性)
  • 基于这些数据所产生的行为(所能调用的方法)

   关于信息隐蔽,就是方法和属性的可见性,在某些语言中,我们可以通过public,private,protected等关键词来限定方法与属性的可见性,但在javascript中,尽管所有的方法都是public的,但是该语言还是提供了一些隐蔽数据的方法,以保护程序的隐秘性。

聚合:也就是组合将几个现有对象合并成一个新对象的过程,把复杂的一个问题分解成多个更小的问题,然后再聚合在一起

继承:实现代码重用,在javascript中,由于不存在类,所以继承只是发生在对象之间,当一个对象继承自另外的对象时,通常会向其中加入新的方法,以扩展被继承的老对象。
覆写:(override)重新定义继承方法的过程

多态:不同对象通过相同的方法调用来实现各自行为的能力


OOP举例说明

JavaScript面向对象编程指南--第一章 面向对象的JavaScript_第1张图片
JavaScript面向对象编程指南--第一章 面向对象的JavaScript_第2张图片


你可能感兴趣的:(JavaScript面向对象编程指南--第一章 面向对象的JavaScript)