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

问题描述 投票:0回答:1

我正在尝试构建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"

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

javascript object es6-class
1个回答
1
投票

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

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"

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

© www.soinside.com 2019 - 2024. All rights reserved.