我看到一些使用ES6类实现单例模式的代码,我想知道为什么要这样做,而不是在文件底部实例化该类并导出实例。这样做有什么负面影响吗?例如:
ES6 导出实例:
import Constants from '../constants';
class _API {
constructor() {
this.url = Constants.API_URL;
}
getCities() {
return fetch(this.url, { method: 'get' })
.then(response => response.json());
}
}
const API = new _API();
export default API;
用法:
import API from './services/api-service'
使用以下单例模式有什么不同?使用其中一个的原因是什么?我更想知道我给出的第一个示例是否存在我不知道的问题。
单例模式:
import Constants from '../constants';
let instance = null;
class API {
constructor() {
if(!instance){
instance = this;
}
this.url = Constants.API_URL;
return instance;
}
getCities() {
return fetch(this.url, { method: 'get' })
.then(response => response.json());
}
}
export default API;
使用方法:
import API from './services/api-service';
let api = new API()
class
,一个模块导入或工厂函数就足以使fetch
可以被模拟。 - Bergiclass
语法。 - Bergi