Si tengo una función como esta:¿Cómo obtener 'este' valor de la función de llamada?
function foo(_this) {
console.log(_this);
}
function bar() {}
bar.prototype.func = function() {
foo(this);
}
var test = new bar();
test.func();
entonces la instancia de test
bar
consigue conectado.
Sin embargo, para que esto funcione tengo que pasar el this
en la función bar.prototype.func
. Me preguntaba si es posible obtener el mismo valor this
sin pasando this
.
Intenté usar arguments.callee.caller
, pero esto devuelve la función del prototipo y no el valor this
dentro de la función del prototipo.
¿Es posible registrar la instancia test
de bar
llamando solo al foo()
en la función de prototipo?
no No se puede acceder al contexto de las funciones de la pila de llamadas. Tienes que pasar este contexto junto. – Raynos
¿Hay alguna razón por la que no desee pasar 'this' si ya va a crear una función de propósito especial para el registro asociado al prototipo de bar? ¿Hay algún otro motivo que no sea el de aprender a usar este patrón? – TNi
@TNi: No tiene necesariamente un propósito práctico, pero sería útil en mi caso. Intento crear un ciclo for multinivel con solo pasar una función y límites a una función, que ejecuta la función como lo haría con los ciclos for.En un ciclo for regular, uno puede acceder a 'this', pero de esta manera parece que necesito pasar' this' a mi función. – pimvdb