Es6 class类 个人理解

背景: 传统的javascript中只有对象,没有类的概念。它是基于原型的面向对象语言。原型对象特点就是将自身的属性共享给新对象。
如果要生成一个对象实例,需要先定义一个构造函数,然后通过new操作符来完成。构造函数示例:

//函数名和实例化构造名相同且大写(非强制,但这么写有助于区分构造函数和普通函数)
function Person(name,age) {
    this.name = name;
    this.age=age;
}
Person.prototype.say = function(){
    return "我的名字叫" + this.name+"今年"+this.age+"岁了";
}
var obj=new Person("laotie",88);//通过构造函数创建对象,必须使用new 运算符
console.log(obj.say());//我的名字叫laotie今年88岁了

构造函数生成实例的执行过程:

  1. 使用new关键字生成一个新的空对象(后台会隐式执行 new Object())
  2. 将构造函数作用域赋值给新对象,改变this指向(指向新对象)
  3. 执行构造函数的代码
  4. 返回新对象

class:
constructor方法 是类构造函数的默认方法 通过new生成对象实例时 自动调用该方法
constructor中可以通过super关键字,调用父类的constructor方法。

class Person{
    constructor(name,age){
        this.name = name; // this代表的是实例对象
        this.age = age;
    }
    say(){
        return "我的名字叫" + this.name
    }
}
var obj = new Person("laotie",11)

**※※※※**我们用构造函数来抽象出一个模型,以达到代码的重复利用。用function声明是需要状态提升的,class则需要先声明再使用。

function和class区别
class类全面理解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值