JS: So erstellen Sie ein Objekt basierend auf übergeordneten Eigenschaften
P粉883223328
P粉883223328 2024-04-04 21:08:50
0
1
1504

Ich versuche ein JS-Objekt zu erstellen, das alle URLs enthält.

Ich möchte dies durch den data()-Teil erreichen:

export default defineComponent({
  name: 'MyPage',
  data() {
    backendUrls: {...}
  }
})

Einfacher betrachtet würde es so aussehen:

backendUrls: {
  baseUrl: "http://localhost:8080",
  baseUrlWithPrefix: function() { return this.baseUrl + "/ver1"; }
  userAdd: function() { return this.baseUrlWithPrefix() + "/user/add"; }
}

Ich kann das Schlüsselwort this verwenden, da es auf dasselbe Objekt verweist wie die angegebene Eigenschaft.

Aber ich möchte es noch weiter aufteilen und Objekte innerhalb von Objekten erstellen:

backendUrls: {
  baseUrl: "http://localhost:8080",
  generalUrls: {
    baseUrlWithPrefix: ...
  },
  socketUrls: {
    messageUrls: {
      userAdd: ...
    }
  }
}

Wenn ich hier generalUrls: { baseUrlWithPrefix: function() { return this.baseUrl + "/ver1" }} versuche, funktioniert es nicht, da baseUrl nicht gefunden werden kann , da das Schlüsselwort generalUrls: { baseUrlWithPrefix: function() { return this.baseUrl + "/ver1"; }},它不会起作用,因为它找不到baseUrl,因为this关键字指向generalUrls对象,而不是backendUrls对象,baseUrl auf das Objekt generalUrls verweist, nicht auf das Objekt backendUrls, in dem baseUrl vorhanden ist.

Ich brauche so etwas:

backendUrls: {
  baseUrl: "http://localhost:8080",
  generalUrls: {
    baseUrlWithPrefix: function() { return {goBackToParentObject}.this.baseUrl + "/ver1"; }
  },
  socketUrls: {
    messageUrls: {
      userAdd: function() { return {goBackToParentObject}.this.generalUrls.baseUrlWithPrefix() + "/user/add"; }
    }
  }
}

P粉883223328
P粉883223328

Antworte allen(1)
P粉432930081

只需按照以下方式更改调用函数的方式

const backendUrls = {
  baseUrl: "http://localhost:8080",
  generalUrls: {
    baseUrlWithPrefix: function() { return this.baseUrl + "/ver1"; }
  },
}

const example = backendUrls.generalUrls.baseUrlWithPrefix.bind(backendUrls);

example();
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!