ECMAScript在其第6版中是否已停止使用基于prototye的编程语法?

时间:2015-12-07 05:37:39

标签: javascript ecmascript-6 ecmascript-5

我非常喜欢JavaScript的ECMAScript5语法,主要是因为在我看来,正是这种语言在其他面向对象编程语言中独树一帜,遵循相对传统的编程风格和语法。

不确定ECMAScript6是否仍然支持ECMAScript5语法,即它是否向后兼容。但是,是否有任何理由替换语法,尤其是基于原型的方法将JavaScript中的类(更不用说继承等)定义为更传统的方法(如在大多数面向对象中)编程语言)?

为了举例说明语法更改,根据ECMAScript5,您可以在JavaScript中定义人员类:

// 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.');
    }
}

我问的是这个问题,因为我相信,对于一些程序员而言,由于过于习惯于较旧的风格,可能会转而回到传统的语法,因此首先会出现问题。那么为什么首先会出现如此剧烈的变化呢?

非常感谢任何信息。

1 个答案:

答案 0 :(得分:2)

No.

  

在ECMAScript 6中引入了JavaScript类,它们是JavaScript现有的基于原型的继承的语法糖。类语法向JavaScript引入新的面向对象的继承模型。 JavaScript类提供了更简单,更清晰的语法来创建对象和处理继承。