Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

214
Visualizações
¿Puedo definir/unir una clase de javascript dentro de golang?

Tengo experiencia en Go, pero estoy completamente verde cuando se trata de Javascript. Empecé a jugar con el objetivo js/wasm de Go. Me preguntaba si es posible definir una clase JS dentro de golang. El paquete syscall/js no proporciona una forma directa de hacerlo, pero según un tutorial , una clase JS es esencialmente solo una función constructora y un prototipo. Así que intenté construir el ejemplo de juguete Rectangle del tutorial en Go:

 package main import ( "syscall/js" ) // Attempt to create a simple javascript class: // // class Rectangle { // constructor(height, width) { // this.height = height; // this.width = width; // } // // // Method // area() { // return this.height * this.width; // } // } func rectangleArea(this js.Value, args []js.Value) interface{} { height := this.Get("height").Float() width := this.Get("width").Float() return height * width } func rectangleConstructor(this js.Value, args []js.Value) interface{} { this.Set("height", args[0]) this.Set("width", args[1]) return this } func main() { const name = "Rectangle" rectangle := js.FuncOf(rectangleConstructor) rectangle.Set("prototype", map[string]interface{}{ "constructor": rectangle, "area": js.FuncOf(rectangleArea), }) js.Global().Set(name, rectangle) select {} }

Parece funcionar en la consola Javascript de mi navegador: puedo crear una instancia de Rectangle , extender la clase, etc. Enfriar. Lo único que me preocupa es que la comparación directa entre mi clase Rectangle y una clase Rectangle2 idéntica definida en la consola JS produce diferencias:

 > Rectangle function _makeFuncWrapper()​ length: 0​ name: ""​ prototype: Object { constructor: _makeFuncWrapper(), area: _makeFuncWrapper() }​​ area: function _makeFuncWrapper()​​ constructor: function _makeFuncWrapper()​​ <prototype>: Object { … }​ <prototype>: function () > Rectangle2 class Rectangle2 { constructor(height, width) } length: 2 name: "Rectangle2" prototype: Object { … } area: function area() constructor: class Rectangle2 { constructor(height, width) } <prototype>: Object { … } <prototype>: function ()

Por supuesto, todas las diferencias pueden deberse a la magia especial Go/wasm.

Para resumir, mi pregunta es: ¿lo que estoy haciendo es una forma sana y sensata de definir las clases JS desde dentro de Go? Si no, ¿hay una mejor manera?

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda