es5类与es6类的写法

es6给我们提供了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(2,4)
console.log(p.toString()); //2 4

es6写法,方法之间直接不能用逗号分隔

class Point{
	constructor(x, y) {
	    this.x = x;
		this.y = y;
	}
	//所有的方法都定义在类的prototype上
	toString(){
		return this.x+' '+this.y;
	}
}
var p  = new Point(2,4)
console.log(p.toString());//2 4

注意!
1、类中使用的是严格模式,不需要指定运行模型。
2、类中一定要有一个constructor(构造器)方法,如果没有定义,系统会默认创建一个空的构造器
3、类必须使用new来调用(否则会报错),和普通的构造函数有区别,不能在函数里通过判断new的情况然后 return new自身 来形成安全工厂模式来避免。

你可能感兴趣的:(JavaScript学习)