相关疑难解决方法(0)

ES6 Singleton vs实例化一次类

我看到使用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;
Run Code Online (Sandbox Code Playgroud)

用法:

import API from './services/api-service'
Run Code Online (Sandbox Code Playgroud)

使用以下Singleton模式有什么区别?是否有任何理由使用另一个?我真的更好奇,知道我给出的第一个例子是否会有我不知道的问题.

单身模式:

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());
  }
} …
Run Code Online (Sandbox Code Playgroud)

javascript es6-class

36
推荐指数
3
解决办法
2万
查看次数

标签 统计

es6-class ×1

javascript ×1