J'essaie de créer un objet JS qui contient toutes les URL.
Je souhaite y parvenir grace à la partie data()?:
export default defineComponent({ name: 'MyPage', data() { backendUrls: {...} } })
En regardant les choses d'une manière plus simple, cela ressemblerait à ceci?:
backendUrls: { baseUrl: "http://localhost:8080", baseUrlWithPrefix: function() { return this.baseUrl + "/ver1"; } userAdd: function() { return this.baseUrlWithPrefix() + "/user/add"; } }
Je peux utiliser le mot-clé this
car il pointe vers le même objet que la propriété donnée.
Mais je veux le diviser davantage et créer des objets dans des objets?:
backendUrls: { baseUrl: "http://localhost:8080", generalUrls: { baseUrlWithPrefix: ... }, socketUrls: { messageUrls: { userAdd: ... } } }
Ici, si j'essaye generalUrls?: { baseUrlWithPrefix: function() { return this.baseUrl + "/ver1"; }}
, cela ne fonctionnera pas car il ne trouve pas baseUrl
, car le mot-clé generalUrls: { baseUrlWithPrefix: function() { return this.baseUrl + "/ver1"; }}
,它不會起作用,因為它找不到baseUrl
,因為this
關(guān)鍵字指向generalUrls
對象,而不是backendUrls
對象,baseUrl
pointe vers l'objet generalUrls
, et non vers l'objet backendUrls
, dans lequel baseUrl
existe.
J'ai besoin de quelque chose comme ceci?:
backendUrls: { baseUrl: "http://localhost:8080", generalUrls: { baseUrlWithPrefix: function() { return {goBackToParentObject}.this.baseUrl + "/ver1"; } }, socketUrls: { messageUrls: { userAdd: function() { return {goBackToParentObject}.this.generalUrls.baseUrlWithPrefix() + "/user/add"; } } } }
Changez simplement la fa?on dont vous appelez la fonction comme suit
const backendUrls = { baseUrl: "http://localhost:8080", generalUrls: { baseUrlWithPrefix: function() { return this.baseUrl + "/ver1"; } }, } const example = backendUrls.generalUrls.baseUrlWithPrefix.bind(backendUrls); example();