ES6构造函数class

ES6构造函数class

class类

ES6 的语法
ES6 写构造函数的语法

语法:

ES5:

      function Person() { 构造函数体 };
      Person.prototype.sayHi = function () {};
      Person.prototype.play = function () {};

ES6:

class Person {
	constructor () { 构造函数体 };

        // 下面这个 sayHi 和 play 就是 Person.prototype 上面的一个方法
        sayHi () {};
        play () {};
      };

区别:

ES5:
构造函数:构造函数就是函数, 所以可以当作普通函数来调用, 只不过没有创造对象的能力。

ES6:
class 类:不是一个函数, 就是一个 类, 所以不能当作普通函数来调用, 如果要当作普通函数了, 就会直接报错。

// 1. ES5 的构造函数
function Person(name, age) {
  this.name = name;
  this.age = age;
};

//ES5 向原型上添加一些方法
Person.prototype.sayHi = function () { console.log('hello world') };

let p1 = new Person('jack', 18);
p1.sayHi();
console.log(p1);

// 因为没有和 new 关键字连用, 所以就没有了创造对象的能力
let p2 = Person();
console.log(p2);





// 2. ES6 的 类(构造函数)
//    Student: 类名
//    class: 定义类的关键字
class Student {
  constructor (name, age) {
    this.name = name;
    this.age = age;

    // 这个位置等价于 ES5 里面的构造函数体
    // 所以这个位置的 this 就是当前实例
    // console.log(this);
  };

  sayHi () {
    console.log('hello class');
    // 这个函数就等价于ES5 原型上的方法
    // 也是一样依靠实例来调用
    // 这里的 this 也是指向当前实例
    // console.log(this);
  };

  play () {
    console.log('play')
  };
  
};

let s1 = new Student('Rose', 20);

s1.sayHi();

console.log(s1);

let s2 = Student();

总结

1、在 ES5 中,向原型上添加方法是
函数.prototype.方法名=function (){};
2、在 ES6 中的对象的属性都是写在 constructor 关键字里面,方法也都是在原型身上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值