¿Por qué 'this.userid' está asignando un valor indefinido? ¿"esto" apunta a la clase o al objeto mismo? Sin embargo, timestamp_generate_function() funciona.
class price_update { constructor(api_key, url_endpoint, user_id, store_name) { this.api_key = api_key; this.url_endpoint = url_endpoint; this.userid = user_id; this.store_name = store_name; } #updatePriceQuantity_parameters = { Action: "UpdatePriceQuantity", Format: "json", Timestamp: this.#timestamp_generate_function(), UserID: this.userid, Version: "1.0" };¿"esto" apunta a la clase o al objeto mismo?
En este caso, this se refiere al objeto. No, no el tipo de datos del objeto de JavaScript ( {} ), sino la instancia de la clase price_update cuando se crea una instancia con new price_update() .
Oh, cierto, tienes un error tipográfico allí ( user_id1 en lugar de user_id en los parámetros del constructor). user_id no se definió allí (aunque los mods SO editaron la pregunta), por lo tanto, no está definido.
Fragmento de la publicación original:
class price_update { constructor(api_key, url_endpoint, user_id1, store_name) { this.api_key = api_key; this.url_endpoint = url_endpoint; this.userid = user_id; this.store_name = store_name; } #updatePriceQuantity_parameters = { Action: "UpdatePriceQuantity", Format: "json", Timestamp: this.#timestamp_generate_function(), UserID: this.userid, Version: "1.0" };¿"esto" apunta a la clase o al objeto mismo? Sí. this apunta al objeto mismo.
¿Por qué 'this.userid' está asignando un valor indefinido? Está intentando establecer el valor en función de una propiedad ( this.userid ) antes de haberlo definido (ya sea en el constructor o en cualquier otro lugar).
En su lugar, querrá hacer algo como esto en su constructor:
class price_update { constructor(api_key, url_endpoint, user_id, store_name) { this.api_key = api_key; this.url_endpoint = url_endpoint; this.userid = user_id; this.store_name = store_name; this.#updatePriceQuantity_parameters.UserID = user_id; } #updatePriceQuantity_parameters = { Action: "UpdatePriceQuantity", Format: "json", Timestamp: this.#timestamp_generate_function(), UserID: '', Version: "1.0" };Tenga en cuenta que estamos configurando el valor en el constructor mientras estamos dentro de la instancia del objeto en sí. Puede hacerlo así, o en otro método si lo desea. De cualquier manera, primero debe crear una instancia del objeto antes que usted y acceder/aplicar las propiedades que ha establecido durante la construcción.