转载

浅谈JavaScript中的对象

面向对象的开发:对象有自己的属性、对象具备自己的方法

JS中this关键字:指的是当前函数或者属性归属的对象。

在对象环境中,关键字this指的是调用对象。

在函数调用中,关键字this可以用来设置对象属性。

一、类

在面向对象编程中, 对象是一个类的实例 ,类定义了一组公开的属性和方法。类简化了同一类型的多个对象的创建。

1 var star = {};   //组装一个star对象 2 star["Polaris"] = new Object; 3 star["Mizar"] = new Object; 4 star["Polaris"].constellation = "Ursa Minor"; 5 star["Mizar"].constellation = "Ursa Major";

以下为使用伪类组装一个star对象:【主要目的是:简化代码重复率,提高阅读效率】

1 var star = {};  2 function Star(constell,type,specclass,magnitude) {  3     this.constellation = constell;  4     this.type = type;  5     this.spectralClass = specclass;  6     this.mag  = magnitude;  7 }  8   9 star["Polaris"] = new Star("Ursa Minor","Double/Cepheid","F7",2.0); 10 star["Mizar"] = new Star("Ursa Major","Spectroscopic Binary","A1 V",2.3);

二、创建对象

2.1 两种方法创建对象:

1 var star=new Object;   //new关键字 2 var star={}            //花括号

2.2 为对象添加属性

1 star.name="Polaris"; 2 star.constellation="Ursa Minor";

2.3 遍历对象属性   用for...in..函数

1  function Star(constell,type,specclass,magnitude) {  2         this.constellation = constell;  3         this.type = type;  4         this.spectralClass = specclass;  5         this.mag  = magnitude;  6     }  7     star["Polaris"] = new Star("Ursa Minor","Double/Cepheid","F7",2.0);  8     star["Mizar"] = new Star("Ursa Major","Spectroscopic Binary","A1 V",2.3);  9     star["Aldebaran"] = new Star("Taurus","Irregular Variable","K5 III",0.85); 10     star["Rigel"] = new Star("Orion","Supergiant with Companion","B8 Ia",0.12); 11  12 for (var element in star) {                          //元素名 13     for (var propt in star[element]) {               //属性值 14         alert(element + ": " + propt + " = " + star[element][propt]); 15     } 16 }

2.4 为对象添加方法

和为自定义属性一样,也可以为对象添加方法

使用伪类包含一个show()方法

1 var star = {};  2 function Star(constell,type,specclass,magnitude) {  3   this.constellation = constell;  4   this.type = type;  5   this.spectralClass = specclass;  6   this.mag = magnitude;  7   this.show=function(){  8     alert("hello,this is a method.")  9   } 10 }
正文到此结束
Loading...