我非常喜欢JavaScript的ECMAScript5语法,主要是因为在我看来,正是它使它在遵循相对传统的编程风格和语法的其他面向对象编程语言中独树一帜。
不确定ECMAScript5语法在ECMAScript6中是否仍然受支持,即它是否向后兼容。但是,是否有理由替换语法,特别是在JavaScript中使用基于原型的方法来定义类(更不用说继承,等等)变成更传统的编程语言(如大多数面向对象的编程语言)?
为了举例说明语法变化,按照ECMAScript5,您可以在JavaScript中定义person类:
// ES5 class definition of a Person
function Person (name) {
this.name = name;
}
//adding methods or properties to the Person prototype
Person.prototype.walk = function(){
console.log(this.name + ' is walking');
}以上在ES6中的相同实现:
class Person {
constructor(name) {
this.name = name;
}
walk() {
console.log(this.name + ' is walking.');
}
}我之所以问这个问题,是因为我相信,对于一些程序员来说,由于过于习惯旧的风格,最初可能会出现问题,转而采用传统的语法。那么,为什么会首先带来如此剧烈的变化呢?
如有任何资料,敬请见谅。
发布于 2015-12-07 05:39:52
JavaScript类是在ECMAScript 6中引入的,与ECMAScript现有的基于原型的继承相比,它具有语法优势。类语法是而不是,在JavaScript中引入了一个新的面向对象继承模型。JavaScript类提供了一个更简单、更清晰的语法来创建对象和处理继承。
https://stackoverflow.com/questions/34127113
复制相似问题