猿问

实现可设置模块作用域变量的最常见模式

我正在编写一个客户端,以使用JavaScript与服务器API进行通信。我有OOP背景,但是正在尝试使用现代EcmaScript。


所以我从这里开始:


customerApi.js:


const baseUrl = "http://myapi";

export const getCustomers = () => { /* get customer code */ }

export const addCustomer = cust => {}

export const deleteCustomer = id => {}

所有功能都使用baseUrl。


现在,我想进行重构,以便使用customerApi.js的代码在baseUrl中设置/传递,而我想出的唯一方法是-


使其成为一门课:


export default class customerApi {

  constructor(baseUrl) {

   this._baseUrl  baseUrl;

  }

}

将其传递给每种方法:


export const getCustomers = (baseUrl) => { /* get customer code */ }

export const addCustomer = (baseUrl,cust) => {}

export const deleteCustomer = (baseUrl,id) => {}

包装功能:


const moduleFn = baseUrl => (

  return {

    getCustomers: () => { /* get customer code */ }

    addCustomer: (cust) => {}

    deleteCustomer: (id) => {}

  }

)

export default moduleFn;

这些仅仅是示例。在模块上实现“可设置”变量的最常见模式是什么?


一只萌萌小番薯
浏览 159回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答