es6-Class 类

Class 的基本语法

通过class关键字,可以定义类

class写法让对象原型的写法更清晰、更像面向对象编程的语法

通过构造函数生成实例对象:

//es5写法: function Point(x,y){     this.x = x;     this.y = y; } Point.prototype.toString = function(){     return "("+ this.x + ',' + this.y+")"; }

var p = new Point(x,y)

//es6写法: Class Point{     constructor(x,y){         this.x = x;         this.y = y;         }     toString(){         return '('+ this.x + '```,' + this.y + ')';     } }

es6定义一个类,里面有constructor方法,就是构造方法,this关键字代表实例对象。 就是:es5的构造函数Point ,对应es6的Point类的构造方法。

Point类还定义了toString方法, 在类中定义方法是,不需要加“function” 关键字, 方法之间不需要加逗号分隔;

es6中的类,完全可以看作构造函数的另一种写法。











class Point{
   ...
}

typeof Point // "function"
Point === Point.prototype.constructor // true

这个表明,类的数据类型就是函数,类本身就指向构造函数。

使用时,也是直接使用new命令,跟构造函数的用法一毛一样。



2.严格模式

    类和模块的内部,默认都是严格模式


3.constructor方法

    1.类中的constructor方法是其默认方法,通过new实例化时,自动调用该方法,若为空,则自动添加空的constructor方法

    2.constructor 默认返回实例对象(this),这里可以指定返回其它对象

    3.使用new


4.类的实例对象

    1.使用new

    2.实例的属性,若非直接定义在实例本身,则为全部定义在原型上(es6 中 即为class上)

    3.同es5, 类的实例共享同一个原型对象


5.Class表达式

    1.可使用表达式形式定义类 (const MyClass = class Me{});   此时类名为MyClass,Me则只能在Class内部可用

    2.立即执行:

        

let person = new Class{

    constructor(name){
        this.name = name;
    }
    sayName (){
        alert(this.name)
    }
}("summer");

person.sayName();//summer

6.不存在变量提升

    不同于es5: 必须要先生命,才能调用或继承


7.私有方法和私有属性

    1.










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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值