class 关键字

class Ninja 表示创建一个名为Ninja的函数。
constructor(...)指明Ninja函数的签名和函数体内容。

class Ninja{
    constructor(name){
        this.name=name;
    }
    swingSword(){
        return true;
    }
}
const ninja=new Ninja("ml");

等价于:

 

    function Ninja(name){
        this.name=name;
    }
    Ninja.prototype.swingSword=function(){
        return true;
    };
    const ninja=new Ninja("ml");

 

使用extends关键字 实现继承。

 1     class Person{
 2         constructor(name){
 3             this.name=name;
 4         }
 5         dance(){
 6             return true;
 7         }
 8     }
 9     class Ninja extends Person{
10         constructor(name,weapon){
11             super(name);
12             this.weapon=weapon;
13         }
14         wieldWeapon(){
15             return true;
16         }
17     }
18     var person=new Person("Bob");

super 关键字用来调用父类的构造函数。

使用这样的继承方法,不用担心原型或覆盖属性的副作用。

因为构造器还在对象体内,只是借用方法和构造函数。

静态方法:

    class Person{
        constructor(name){
            this.name=name;
        }
        dance(){
            return true;
        }
        static message(){
            returm true;
        }
    }

static 定义的方法只能通过函数来调用  不能通过实例来访问。

等价于:

1     function Person(){
2         this.name=name;
3         this.dance=function(){
4           return true;  
5         };
6     }
7     Person.message=function(){
8         return true;
9     };

 

posted @ 2018-09-05 13:19  阿兰儿  阅读(184)  评论(0编辑  收藏  举报