JavaScript面向对象编程

1、面向过程:核心是解决问题的过程
 2、面向对象:核心是对象。关注每个对象在解决问题中的行为
    
       (1)封装性:对象是属性(静态特征)和行为(动态特征)的结合体(封装体)
       
       (2)继承性:父类(基类)的属性和行为可以派生到子类中。子类不需要重复定义
       
       (3)多态性:同一个消息传递给不同的对象,得到的结果不同。
          
    3、类:具体相同属性和行为的对象的抽象
    
    4、对象:是类的实例(是类的具体体现)
    
    5、ES5中定义类:通过构造函数实现

  function Student(name,age){ //构造函数,建议首字母大写,Student可以看作类
			this.name = name;
			this.age = age;
		}

		var s1 = new Student('刘备',32); //s1就是对象
		var s2 = new Student('小乔',18);
	

6、ES6中定义类的方法:
    

  class 类名{
		     constructor([参数]){ //构造方法:用来初始化对象的成员
			    方法体;
			 }
		 }

(1)创建对象:
        
          var 对象名 = new 类名([参数])
          
        强调:在ES6中constructor构造方法不能显式调用


        例如:

  class Student{ //使用class关键字定义类
				constructor(na,a){ //构造方法:用来初始化对象的成员
					this.name = na;
					this.age = a;
				}
			}

‘this.name’中的name是对象的属性

(2)对象成员(包括属性和方法)的访问
        
           对象名.属性名
           
           对象名.方法名([参数])

7、继承:

     (1)父类:又称为基类或超类,被继承的类

     (2)子类:又称为派生类。由父类派生来的类    
        
    (3)继承的实现:extends


		  class 子类名 extends 父类名{
		      constructor(){
			  }
			  其他的成员方法
		  }

 (4)super关键字:代表父类.用来访问和调用父类的成员


          A、调用父类的构造方法:在子类的构造方法中调用父类的构造方法
          
              在继承中,创建子类对象时必须先调用父类的构造方法,然后再调用
              
              子类的构造方法,并且父类构造方法的调用必须是子类构造方法中
              
              第一条语句.
              
          B、super([参数]):调用父类的构造方法    
          
          C、调用父类的普通方法:super.方法名([参数])

8、实例成员和静态成员
    
        (1)实例成员:对象成员
        
        (2)静态成员:所有对象共享的成员,不属于某个具体的对象。
        
                     又称为类成员
                    
            类名.成员名   -- ES6
            
            构造方法名.成员名  -- ES5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值