在 javascript 中将对象分配给函数的最佳方法

Best way to assign object to a function in javascript

我正在尝试构建我的 Javascript API 以便我可以传递参数和调用方法。

考虑以下几点:

class Cake {
    constructor(flavour) {
        this._flavour = flavour;
    }
    slice() {
        console.log(`cake sliced`);
    }
    serve() {
        console.log(`${this._flavour} cake served`);
    }
}

function cake(flavour) {
    return new Cake(flavour);
}

Object.assign(cake, new Cake());

cake('Chocolate').serve();

// => "Chocolate cake is served"

有没有更简单的方法将对象及其方法分配给函数?

更新: 我现在可以看到不需要 Object.assign(cake, new Cake()),哦。谢谢T.J。拥挤。不过,如果您想到任何更简洁的方法来实现这一目标,请告诉我。

这一行在该代码中没有任何用处:

Object.assign(cake, new Cake());

只需删除它:

class Cake {
    constructor(flavour) {
        this._flavour = flavour;
    }
    slice() {
        console.log(`cake sliced`);
    }
    serve() {
        console.log(`${this._flavour} cake served`);
    }
}

function cake(flavour) {
    return new Cake(flavour);
}

cake('Chocolate').serve();

// => "Chocolate cake is served"

这行代码所做的就是用 _flavor = undefined 创建一个 Cake 实例,然后将该实例的所有可枚举属性分配给 cake 函数。所以 cake._flavor 属性 是用值 undefined 创建的。你不想要它,也不需要它。