如何在Node.js中用对象存储URL路径并复用已有条目?
实现Node.js中复用对象属性的URL路径存储
你写的代码里直接在paths里用root会报错,因为对象字面量初始化阶段,内部还没法引用同一个对象的其他属性。给你几种可行的实现方式:
方法一:分步构建对象
先定义基础的root属性,再给paths赋值,这样就能正常引用已定义的URLS.root:
let URLS = { root: "www.example.com" }; URLS.paths = { user: URLS.root + "/user", login: URLS.root + "/login" };
方法二:使用getter动态计算
用getter函数定义paths,每次访问时都会基于当前的root值计算路径,适合root可能动态变化的场景:
let URLS = { root: "www.example.com", get paths() { return { user: this.root + "/user", login: this.root + "/login" }; } };
注意:每次访问URLS.paths都会返回一个新对象,如果需要缓存结果,可以在内部加缓存逻辑。
方法三:用立即执行函数一次性构建
把root作为私有变量,通过立即执行函数一次性构建完整的URL对象,适合路径固定不需要动态修改的场景:
const URLS = (() => { const root = "www.example.com"; return { root, paths: { user: root + "/user", login: root + "/login" } }; })();
你可以根据自己的需求选择对应的方式:如果路径固定不变,方法三最省心;如果root可能动态更新,方法二更合适;如果想分步添加属性,方法一最灵活。
内容的提问来源于stack exchange,提问作者Lucas Bois
相关产品推荐
相关产品推荐

