En este ejemplo, la variable this llega como window...
Código Javascript:
Ver original
addMethod = function(Obj, Name, Method){ Obj.prototype[Name] = Method } bind = function(scope){ var alias = this; alert(scope) return function(){ return alias.apply(scope, arguments)} } addMethod(Function, 'bind',bind) mifuncion ={ algo: function(){ this.nombre = 'carlos'; }, name: function(){ alert('tu'+ this.algo) }.bind(this) } mifuncion.algo(); mifuncion.name();
En este otro si funciona...
Código Javascript:
Ver original
addMethod = function(Obj, Name, Method){ Obj.prototype[Name] = Method } bind = function(scope){ var alias = this; alert(scope) return function(){ return alias.apply(scope, arguments)} } addMethod(Function, 'bind',bind) mifuncion ={ algo: function(){ this.nombre = 'carlos'; }, name: function(){ hola = function(){ alert('hola '+this.nombre) }.bind(this) hola(); } } mifuncion.algo(); mifuncion.name();
Por mas que le doy vueltas no encuentro la explicacion de porque el ejemplo 1 no funciona y el 2 si, veo que es a un segundo nivel que funciona pero a primero no.....alguien que me de una buena explicacion, gracias:)