// Nosotros vemos:
myFoo.something(myBar);
// myFoo es de tipo Foo
// myBar es de tipo Bar
// El compilador ve:
something(myFoo, myBar);
* * *
// Nosotros:
class Foo {
public T something(Bar myBar) {
// accedemos a los atributos: this.x
// this es el objeto sobre el que llamados el método
return ...
}
}
// El compilador
public T something(Foo this, Bar myBar) {
return ...
}
var foo = (function() {
var digits = ["cero", "uno", "dos",
"tres", "cuatro", "cinco", "seis",
"siete", "ocho", "nueve"];
return function(n) {
return digits[n];
}
}());
document.writeln(foo(3));
La función definida dentro de la función foo, "closes over" la variable digits