¿Cómo puedo generar algo como:
function generator() { static funct(){} } Creo que estoy equivocado, pero por lo que entiendo, el método class {} está construido sobre function(){} , por lo que debería tener el mismo método. El punto es que los métodos estáticos no tienen un .prototype y me gustaría saber cómo se crean a través class {}
@ACTUALIZAR
aparentemente, por lo que entiendo, el método class {} en realidad crea funciones estáticas a través de Object() , ya que ambos pueden crear funciones estáticas.
class A { static a() {} } const B = {b(){}}; console.log('a' in A && 'b' in B) console.log(`${Aaprototype}, ${Bbprototype}`);Honestamente, lo más cerca que puedes estar es quitándolo tú mismo:
function generator() { if (!(this instanceof TestClass)) throw new TypeError("Cannot call a class as a function"); } generator.funct = function() { console.log(this.funct); return "test"; } generator.funct.prototype = undefined; console.log(generator.funct()) console.log(generator.funct.prototoype)da la misma salida que
class generator { static funct() { console.log(this.funct) return "test"; } } console.log(generator.funct()) console.log(generator.funct.prototoype)Pero no veo por qué esto es necesario, incluso en Babel cuando se transpila a la sintaxis de ES5, los métodos estáticos todavía tienen prototipos.