我正在尝试构建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());
只需将其删除:
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
属性。您不想要或不需要它。