面向对象的开发:对象有自己的属性、对象具备自己的方法
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 }