DAY1

作者: 小可_34e0 | 来源:发表于2019-10-16 17:04 被阅读0次

创建类
class name{
//class body
}
创建实例
var xx=new name();
类constructor()方法是类的构造函数,用于传递参数返回实例对象,通过new命令生成对象实例时,自动调用该方法,如果没有显示定义,类内部会自动给我们创建一个constantor()


图片发布于简书app
图片发布于简书app

创建方法:

<body>
    <script >
        //1.创建类class 创建一个明星类
        class Star{
            construtor(uname,uage){
                this.uname=uname;
                this.uage=uage;
            }
            //创建方法
            sing(){
                console.log('我唱歌');
            }
        }
        //2.利用类创建对象new
        var ldh=new Star('刘德华');
        console.log(ldh);
        //1.我们类里面所有的函数不需要写function
        //2.多个函数方法之间不需要添加逗号分隔
               ldh.sing('冰雨');
    </script>
</body>

类的继承:

//1、类的继承
        class Father{
            constructor(){

            }
            money(){
            console.log(100);
            }
        }
        class Son extends Father{

        }
        var son=new Son();
        son.money();

super关键字:
super关键字用于访问和调用对象父类上的函数,可以调用父类的构造函数,也可以调用父类的普通函数

<script >
        class Father{
            constructor(x,y){
                this.x=x;
                this.y=y;
            }
            sum(){
                console.log(this.x+this.y);
            }
        }
        class Son extends Father{
            constructor(x,y){
                super(x,y);//调用了父类中的构造函数
            }
        }
        var son=new Son(1,2);
        son.sum();
        
    </script>

super关键字调用父类的普通函数

<script >
        //super关键字调用父类普通函数
        class Father{
            say(){
                return '我是爸爸';
            }
        }
        class Son extends Father{
            say(){
                //console.log('我是儿子');
                console.log(super.say()+'的儿子');
                //super.say()就是调用父类中的普通函数say();
            }
        }
        var son=new Son();
        son.say();
        //1、继承中的属性或者方法查找原则:就近原则
        //2、继承中,如果实例化子类输出一个方法,先看子类有没有这个方法,如果有就先执行子类的
        //3.继承中,如果在子类没有,就去查找父类有没有这个方法,如果有,就调用父类的这个方法
    </script>

注意点:子类在构建函数中使用super,必须放在this前面(必须先调用父类的构造方法再使用子类的构造方法)


图片发布于简书app

一定要记得加this:


图片发布于简书app
constructor里面的this 指向 的是创建的实例对象
总结:

1.ES6中类没有变量提升,所以必须先定义类,才能通过类实例化对象
2.类里面的共有属性和方法一定要加this使用
3.类里面的this指向问题
4.constructor里面的this指向实例对象,方法的里面的this指向这个方法 的调用者

网友评论

      本文标题:DAY1

      本文链接:https://www.haomeiwen.com/subject/rpskmctx.html