什么相当于es5中的ES6方法(类)?

Sou*_*wal 6 javascript ecmascript-6 es6-class

我们如何将es6类​​方法填充到ES5中?

我正在读一本书,它说的如下:

class Ninja {
    constructor(name) {
        this.name = name;
    }

    swingSword() {
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

是相同的

function Ninja(name) {
    this.name = name;
} 

Ninja.prototype.swingSword = function() {
    return true;
};
Run Code Online (Sandbox Code Playgroud)

我只是想问为什么我们在原型上添加swingSword而不是在构造函数中?

因为函数应该在对象上,而不是在原型链上.

我是对还是错?

Cas*_*yer 2

它应该在原型上,方法不是每个实例的数据。无法想到任何以这种方式实现它的语言,类的整个思想是拥有一整类具有相同方法集的对象。

如果将其放入构造函数内,则它将是使用构造函数创建的每个实例的唯一函数。例如,每个“方法”有 1000 个对象 == 1000 个函数。