Скажем, у нас есть этот код (забудьте о прототипах на мгновение):
function A(){
var foo = 1;
this.method = function(){
return foo;
}
}
var a = new A();
- внутренняя функция, перекомпилированная каждый раз, когда выполняется функция A? Или лучше (и почему) сделать это вот так:
function method = function(){ return this.foo; }
function A(){
this.foo = 1;
this.method = method;
}
var a = new A();
Или javascript-механизмы достаточно умны, чтобы не создавать новую функцию "метод" каждый раз? В частности, Google v8 и node.js.
Кроме того, любые общие рекомендации о том, когда использовать эту технику, приветствуются. В моем конкретном примере мне действительно нравится использовать первый пример, но я знаю, что внешняя функция будет создаваться многократно.