Bueno, en algunas ocaciones tenemos objetos que abren nuevas funciones, llega un punto en el que la variable "this" se desvincula y perdemos el contacto con nuestro objeto, ahora no entiendo por que me ocurre esto
En este ejemplo, la variable this llega como window...
Código Javascript
:
Ver originaladdMethod = 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 originaladdMethod = 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:)