[英]Should/do I have to export returning class returned by another exported class in Javascript ES6?
[英]Should I new a utils class in es6?
我已經聲明了一個類,例如:
export default class Utils {
static deepClone(): object {
return {}
}
}
所以當我想使用 deepClone 時,我可以:
// First One
import Utils from './Utils';
export default class Element {
constructor(){
this.utils = new Utils()
}
create(){
return this.utils.deepClone()
}
}
或者:
// Second One
import Utils from './Utils';
export default class Element {
constructor(){
this.utils = Utils
// this is an optional
// in my child class I need't to import Utils
// I can use this.utils.deepClone() directly
}
create(){
return Utils.deepClone()
}
}
我想知道哪種更好的方式來暗示 Element 類
期待你的回復,我對你感激不盡
第二種方法更正確,但它有一個問題,您應該創建一個Utils類的實例來使用每個不是靜態方法的屬性。
您沒有創建實例的類的輸出是一個函數而不是原型對象。
./Utils.js
export default class Utils {
static deepClone(): object {
return {}
}
public deepExtend() {
// deepClone code
}
}
在另一個文件中使用:
import Utils from './Utils';
export default class Element {
constructor(){
this.utils = new Utils();
}
create(){
return Utils.deepClone()
}
extend(){
return this.utils.deepExtend()
}
}
我將返回Utils
export new ,並將它作為實例傳遞到您的Element
的構造函數中,例如:
IUtils = someInterface;
export default class Element {
constructor(utils: IUtils){
this.utils = utils;
}
create(){
return this.utils.deepClone()
}
}
通過這些方式:
Element
類的其他instances
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.