Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

214
Vistas
Indexe un objeto JS como una metatabla en Lua

¿Hay alguna manera de indexar un objeto en JavaScript como Metatable en Lua?

Como por ejemplo:

 var obj = {a:"a",b:"b",properties:{c:"c",d:"d"}} metatable(obj,obj.properties) // Make it so that if you try to index something that's not inside the object it will go to the parameter one console.log(obj.a) // "a" console.log(obj.c) // "c"

Para LMD: ¿Cómo lo hago para múltiples objetos? Como por ejemplo:

 var objs = [ obj1 = {name:"Button";class:"button";properties:{text:"Press this"}] ] for (i in objs){ metatable(objs[i],objs[i].properties) } console.log(objs.obj1.text) // "Press this"
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Sí: JavaScript tiene prototipos . Estos no son exactamente lo mismo que Lua, pero se pueden usar para fines simples de indexación de metatablas. Una forma de lograr su ejemplo sería la siguiente:

 const properties = {c: "c", d: "d"} // prototype const obj = Object.create(properties) // create object with prototype obj.a = "a"; obj.b = "b"; console.log(obj.a) // "a" console.log(obj.c) // "c"

O si ya tiene los objetos proporcionados, como en su segundo ejemplo, puede usar Object.setPrototypeOf(object, prototype) , que es comparable a setmetatable(object, {__index = prototype}) en Lua:

 const objs = [{name:"Button", class:"button", properties: {text:"Press this"}}] for (const obj of objs) Object.setPrototypeOf(obj, obj.properties) console.log(objs[0].text) // "Press this"

es decir, la función de metatable que ha estado buscando literalmente es Object.setPrototypeOf .

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda