让我说一堂课。
class Room {
constructor() {
this.width = 100
this.height = 200
}
}
我想在实例化时绑定其他属性。
new Room.bind({ capacity: 5 })()
这可能吗? (无需通过参数完成操作)
答案 0 :(得分:0)
否,这是不可能的,因为new X
返回一个对象而不是一个函数。
Function#bind
仅适用于函数并返回一个函数。
要使您的代码运行,您可以分离Item
并使用实例将其添加到item_list
。
class Room {
constructor() {
this.item_list = [];
this.add = {
item: (item) => this.item_list.push(new Item(item))
};
}
}
class Item {
constructor(name) {
this.name = name;
}
}
let room = new Room();
room.add.item('bed');
console.log(room);