JavaScript中Class的基本语法

1、初步认识Class

ES6中的class可以看作只是一个语法糖,它的绝大部分功能,ES5都可以做到,新的class写法只是让对象原型的写法更加清晰,更像面向对象编程的语法而已。

案例一:

function Point(x,y){
    this.x = x;
    this.y = y;
}
Point.prototype.toString = function(){
    return '('+this.x+','+this.y+')';
}
var p =new Point(1,2);
console.log(p.toString());

运行结果:

改成成class:

class Point{
    constructor(x,y){
        this.x = x;
        this.y = y;
    }
    toString(){
        return '('+this.x+','+this.y+')';
    }
}

var p =new Point(1,2);
console.log(p.toString());

 运行结果:

 上面代码定义了一个类,可以看到里面有一个constructor方法,这就是构造方法。而this关键字则代表实例对象。

定义“类”的方法时,前面不需要加上function这个保留字,直接把函数定义放进去就可以了。另外,方法之间不需要逗号分割,加了会报错。(类型C++的内嵌函数)

2、严格模式

 类和模块的内部默认使用严格模式,所以不需要使用use strict指定运行模式。只要将代码写在类或模块之中,那么就只有严格模式可用。ES实际上已经把整个语言都升级到了严格模式下。

类必须使用new来调用,否则会报错。这是它跟普通的构造函数的一个主要区别,后者不用new也可以执行。

Point();//报错,类必须使用new Point()调用

3、this的指向

类的方法内部如果含有this,它将默认指向类的实例

但是,必须非常小心,一旦单独使用该方法,很可能报错。所以不要单独进行使用。

规范使用:类实例.方法名

你可能感兴趣的:(JS,javascript,前端)