Digamos que tenemos el código (olvidarse de prototipos para un momento):Son cierres en javascript recompiladas
function A(){
var foo = 1;
this.method = function(){
return foo;
}
}
var a = new A();
es la función interna vuelve a compilar cada vez que se ejecute la función A? O es mejor (y por qué) para hacerlo de esta manera:
function method = function(){ return this.foo; }
function A(){
this.foo = 1;
this.method = method;
}
var a = new A();
o son los motores de JavaScript lo suficientemente inteligente como para no crear una nueva función de 'método' cada vez? Específicamente, v8 de Google y node.js.
Además, cualquier recomendación general sobre cuándo usar qué técnica es bienvenida. En mi ejemplo específico, realmente me conviene usar el primer ejemplo, pero sé que la función externa se instanciará muchas veces.
Interesante pregunta. Sin embargo, estaría dispuesto a apostar que los intérpretes de JavaScript son más inteligentes que eso. –
Para ser honesto, sin embargo, si está preocupado por el rendimiento, este no debería ser su cuello de botella. Yo no me preocuparía por eso. –
¿Desea implementar un getter en una variable privada que no se replique con cada llamada de constructor? – Alsciende