类应该替换javascript中的构造函数吗?

时间:2017-01-23 11:24:44

标签: javascript class ecmascript-6

据我所知,类只是旧式构造函数的语法糖。这是否意味着我应该用类完全替换构造函数? 示例:

构造函数

function person(name,age) {
	this.name = name;
	this.age = age;
}
person.prototype.logAll = function() {
	console.log(this.name,this.age);
};

var rachel = new person("Rachel Green", 52);
rachel.logAll();

class person {
	constructor(name,age) {
		this.name = name;
		this.age = age;
	}
	logAll() {
		console.log(this.name,this.age);
	}
}

var rachel = new person("Rachel Green", 50);
rachel.logAll();
这两个完全相同吗?

1 个答案:

答案 0 :(得分:0)

这取决于你使用它们的原因。不要忘记很多旧的浏览器都不支持类,所以如果您编写需要在大多数浏览器中运行的客户端JS,通常最好坚持使用旧的JS样式代码。

如果您不关心旧浏览器,或者这是服务器端JS,那么我会使用类。

对于大多数开发人员(在JS之外),类更容易理解,而且(意见)他们更简单,更好写。

顺便说一下,我最近写了很多ES6 JavaScript,感觉就像是一个更加成熟的JS版本(不要激怒我)。我会诚实地说,只要它有意义,并且不会影响您的可交付成果,请尝试使用新功能;这就是他们的目的!