javascript 的面向对象编程

在写面向对象的WEB应用程序方面JavaSciprt是一种很好的选择.它能支持OOP.因为它通过原型支持继承的方式和通过属性和方法的方式一样好.很多开发者试图抛弃JS,试着用C#或JAVA仅是因为JS不是他认为合适的面向对象的语言.许多人还没有认识到javascript支持继承.当你写面向对象的代码时.它能给你很强大的能量.你也可以使用它写出可复用,可封装的代码.

对象为何如此伟大?
面向对象思想的成功是由于它仿照了现实中的事物和事物的联系.事物有属性和方法.如果我们描述一个台灯.我们会说它的高度和宽度,比如12CM."开灯"这个动作是它的方法.当它是处于开着的状态时.它可以被调亮一点或暗一点(也就是亮度这个属性值变大或变小).

javascript 给予了为WEB应用程序创建对象的能力.对象在需要的时候相应的事件会被触发,代码封装后,它能被实例化很多次.

用 new Object() 来创建对象

在javascript里有几种创建对象的方法,在不同的场合可用不同的方法.最简单的就是用 new 操作符,例如:

 1<script language="javascript" type="text/javascript">   
 2<!-- 
 3
 4person = new Object()   
 5person.name = "Tim Scarfe"   
 6person.height = "6Ft" 
 7
 8person.run = function() {   
 9this.state = "running"   
10this.speed = "4ms^-1"   
11} 
12
13//-->   
14</script>

我们在这个例子里定义了person这个对象,然后加入了它的属性和方法.在这个例子里,自定义的方法里有两个属性.

用文字记号Literal Notation创建对象

用文字记号也可以创建对象,但要javascript 1.2以上版本.它的创建形式是多样的.

 1<script language="javascript" type="text/javascript">   
 2<!-- 
 3
 4// Object Literals 
 5
 6timObject = {   
 7property1 : "Hello",   
 8property2 : "MmmMMm",   
 9property3 : ["mmm", 2, 3, 6, "kkk"],   
10method1 : function(){alert("Method had been called" + this.property1)}   
11}; 
12
13timObject.method1();   
14alert(timObject.property3[2]) // will yield 3 
15
16var circle = { x : 0, y : 0, radius: 2 } // another example 
17
18// nesting is no problem.   
19var rectangle = {   
20upperLeft : { x : 2, y : 2 },   
21lowerRight : { x : 4, y : 4}   
22} 
23
24alert(rectangle.upperLeft.x) // will yield 2 
25
26//-->   
27</script>

文字记号可是是数组,也可以是任意的javascript表达式或值.

用 new 操作符或文字记号创建一个自定义对象都是简单的,也是符合逻辑的.但它最大的缺点就是结果不可复用.也不能很容易的用不同的版本初始化创建对象.例如上面的第一个例子,如果 person 的 name 不是 "Tim Scarfe",那样我们不得不重新定义整个对象,仅仅为了适应它的一点点改变.

本新闻共 2 页,当前在第 1 页 1 2

Published At
Categories with 网页设计
comments powered by Disqus