概念
面向对象(Object Oriented):
1、面向对象是软件开发 *** ,一种编程范式。
2、面向对象的概念和应用,已超越了程序设计和软件开发,扩展到如:数据库系统、交互式界面、应用结构、应用平台、分布式系统、 *** 管理结构、CAD技术、人工智能等领域。
3、面向对象是一种对现实世界理解和抽象的 *** ,是计算机编程技术发展到一定阶段后的产物。
类&对象&属性& ***
类,具有相同数据成员和函数成员的一组对象的***,它为属于该类的全部对象提供了抽象的描述。
对象:类的具体化。
属性:用来描述具体某个对象的特征的就是属性,是静态的。
*** :每个对象有自己的行为或者是使用的 *** 。
静态属性&静态 ***
JavaScript中并没有特别的指定,一般认为,直接使用类名调用的属性为静态属性,直接使用类名调用的 *** 为静态 *** 。
以上概念用以下的代码案例来表达,以下的下案体现出以上的概念。
案例代码
*** 的类(ES5中的类)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="description" content=""> <meta name="viewport" content="width=device-width;initial-scale=1.0;maximum-scale=1;user-scalable=no"> <script type="text/javascript"> // ES5里边的类 function Person(){ // 声明成员属性 this.name="石崇"; this.age = 20; // 声明成员 *** this.run=function(){ alert(this.name + ",在走路~"); } } // 实例化类 var person = new Person(); document.writeln("人的名称为:" + person.name); person.run(); </script> </head> <body> </body> </html>
原型链上增加的属性和 ***
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="description" content=""> <meta name="viewport" content="width=device-width;initial-scale=1.0;maximum-scale=1;user-scalable=no"> <script type="text/javascript"> // 构造函数 function Person(){ // 属性 this.name="石崇"; this.age = 20; // *** this.run=function(){ alert(this.name + ",在走路~"); } } // 原型链上增加属性和 *** Person.prototype.sex = "男"; Person.prototype.strategy=function(){ alert(this.name + "|" + this.sex + "|" + this.age + ",的谋略~"); }; // 实例化类 var person = new Person(); person.run(); // 调用原型链上的 *** person.strategy(); var person2 = new Person(); // 原型链上的属性或方***被多个实例共享 person2.strategy(); </script> </head> <body> </body> </html>
静态属性和静态 ***
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="description" content=""> <meta name="viewport" content="width=device-width;initial-scale=1.0;maximum-scale=1;user-scalable=no"> <script type="text/javascript"> // 类中的静态 *** function Person(){ // 属性 this.name="石崇"; this.age = 20; // *** this.run=function(){ alert(this.name + ",在走路~"); } } // 原型链上增加属性和 *** Person.prototype.sex = "男"; Person.prototype.strategy=function(){ alert(this.name + "|" + this.sex + "|" + this.age + ",的谋略~"); }; Person.info="人"; Person.toString=function(){ return "这里是静态 *** "; } // 实例化类 var person = new Person(); person.run(); // 调用原型链上的 *** person.strategy(); var person2 = new Person(); // 原型链上的属性或方***被多个实例共享 person2.strategy(); // 静态 *** 的调用不需要实例化,直接通过类名来调用 alert(Person.info); alert(Person.toString()); </script> </head> <body> </body> </html>