';这';内部嵌套对象(JavaScript)
我希望有一些像这样的对象结构(我知道这是不可能的) 编辑:我还想将对象导出为模块 所以我做了一些经验 体验A';这';内部嵌套对象(JavaScript),javascript,javascript-objects,Javascript,Javascript Objects,我希望有一些像这样的对象结构(我知道这是不可能的) 编辑:我还想将对象导出为模块 所以我做了一些经验 体验A const AUTH\u BASE='AUTH' 常数AUTH_A={ 登录:{ 输入:`${AUTH_BASE}/login`, 密码:`${AUTH_BASE}/login/password`, } } console.log('enter->',AUTH_A.login.enter) console.log('recover->',AUTH_A.login.password)您可
const AUTH\u BASE='AUTH'
常数AUTH_A={
登录:{
输入:`${AUTH_BASE}/login`,
密码:`${AUTH_BASE}/login/password`,
}
}
console.log('enter->',AUTH_A.login.enter)
console.log('recover->',AUTH_A.login.password)
您可以使用如下静态类:
class Auth {
static base = 'auth'
static login = {
enter: `${Auth.base}/login`
}
}
或者使用getter自引用对象
const AUTH = {
base: 'auth',
get login() {
return {
enter: `${AUTH.base}/login`,
password: `${AUTH.base}/login/password`
}
}
}
因此,您可以像访问任何其他道具一样访问您的属性:
console.log(AUTH.login.enter)
console.log(AUTH.login.password)
在评论中,我谈论的是:
function authFactory(base){
this.base = base;
this.login = {
enter: `${base}/login`,
password: `${base}/login/password`
}
}
const AUTH_E = new authFactory("auth");
console.log('enter E ->', AUTH_E.login.enter);
console.log('recover E ->', AUTH_E.login.password);
实现你想要的最好方法就是这样
const AUTH_B={
base:'auth',
登录(){
返回`${this.base}/login`
},
密码(){
返回`${this.base}/login/password`
},
}
对象冻结(AUTH_B);
AUTH_B.base=“其他东西”;
console.log(AUTH_B.login())
您还可以使用一个工厂函数,它将获取AUTH base并返回您想要的对象。这是主观的,对我来说,选项a看起来最好。体验B似乎很好。因为它就像一个单独的对象,您也可以将其导出为一个模块。
function authFactory(base){
this.base = base;
this.login = {
enter: `${base}/login`,
password: `${base}/login/password`
}
}
const AUTH_E = new authFactory("auth");
console.log('enter E ->', AUTH_E.login.enter);
console.log('recover E ->', AUTH_E.login.password);