ES6class类

属于转载,放在html文件里面方面粘贴来下看

https://www.jianshu.com/p/86267fab4878

百度上搜到的地址,不知道是不是原地址

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
                        // 由代码可以看出类实质上就是一个函数。类自身指向的就是构造函数。
                        // 所以可以认为ES6中的类其实就是构造函数的另外一种写法!
  class Person{
    //定义了一个名字为Person的类
    constructor(name,age){
      //constructor是一个构造方法,用来接收参数
      this.name = name;
      //this代表的是实例对象
      this.age=age;
    }
    say(){
      //这是一个类的方法,注意千万不要加上function
      return "我的名字叫" + this.name+"今年"+this.age+"岁了";
    }
  }
  var obj=new Person("laotie",88);
  console.log(obj.say());
  //我的名字叫laotie今年88岁了
  // 1.在类中声明方法的时候,千万不要给该方法加上function关键字
  // 2.方法之间不要用逗号分隔,否则会报错


                    // 实际上类的所有方法都定义在类的prototype属性上
  Person.prototype.say=function(){
    //定义与类中相同名字的方法。成功实现了覆盖!
    return "我是来证明的,你叫" + this.name+"今年"+this.age+"岁了";
  }
  var obj=new Person("laotie",88);
  console.log(obj.say());
  //我是来证明的,你叫laotie今年88岁了

                  // 当然也可以通过prototype属性对类添加方法
  Person.prototype.addFn=function(){
    return "我是通过prototype新增加的方法,名字叫addFn";
  }
  var obj=new Person("laotie",88);
  console.log(obj.addFn());
  //我是通过prototype新增加的方法,名字叫addFn

                  // 还可以通过Object.assign方法来为对象动态增加方法
  Object.assign(Person.prototype,{
    getName:function(){
      return this.name;
    },
    getAge:function(){
      return this.age;
    }
  })
  var obj=new Person("laotie",88);
  console.log(obj.getName());
  //laotie
  console.log(obj.getAge());
  //88
                  //constructor方法是类的构造函数的默认方法,通过new命令生成对象实例时,自动调用该方法。
  class Box{
    constructor(){
      console.log("五月天还不来开演唱会,好烦啊");
      //当实例化对象时该行代码会执行。
    }
  }
  var obj=new Box();

                        // constructor方法如果没有显式定义,会隐式生成一个constructor方法
                        // 所以即使你没有添加构造函数,构造函数也是存在的
                        // constructor方法默认返回实例对象this,但是也可以指定constructor方法返回一个全新的对象,让返回的实例对象不是该类的实例



</script>
</body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章