在另一個類的方法中回傳一個類是不好的做法嗎?
示例:createBlockClass 方法
class BlockBuilder {
constructor (methodForBlock) {
this.methodForBlock = methodForBlock;
};
createBlockClass () {
const method = this.methodForBlock.bind(this.methodForBlock);
return class Block {
constructor(title) {
this.title = title;
};
method = method;
}
}
};
const blockBuilder = new BlockBuilder(() => console.log('Hello, world!!!'));
const Block = blockBuilder.createBlockClass();
const block1 = new Block("block one");
const block2 = new Block("block two");
block1.method();
block2.method();
在創建任何實體之前,我需要接收一個方法作為引數并將其添加到塊類中
uj5u.com熱心網友回復:
javascript 中的類是一個添加了語法糖的函式。(原因:在 javascript 中“原型繼承”而不是“常規”基于類的繼承,例如 python、java)。
javascript 中的函式是一等公民,因此一個函式既可以是另一個函式的輸入,也可以是另一個函式的輸出。
這導致以下推論/結論:
一個函式可以輸出另一個函式。
一個函式可以輸出一個類。
一個類可以輸出另一個類。
我希望這將有所幫助。
uj5u.com熱心網友回復:
您可以使用一個函式來創建一個類:
function createBlockClass(methodForBlock) {
return class Block {
constructor(title) {
this.title = title;
}
method = methodForBlock;
}
}
const Block = createBlockClass(() => console.log('Hello, world!!!'));
const block1 = new Block("block one");
const block2 = new Block("block two");
block1.method();
block2.method();
希望能幫助到你。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/537388.html
標籤:javascript哎呀
下一篇:JSDoc沒有檢測JS中的類繼承
