Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/07/2010, 09:18
Avatar de minkweb
minkweb
 
Fecha de Ingreso: septiembre-2005
Mensajes: 443
Antigüedad: 18 años, 8 meses
Puntos: 14
Duda con metodo Bind usado por frameworks

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 original
  1. addMethod = function(Obj, Name, Method){
  2.     Obj.prototype[Name] = Method
  3. }
  4.  
  5. bind = function(scope){
  6.     var alias = this;
  7.     alert(scope)
  8.     return function(){ return alias.apply(scope, arguments)}
  9. }
  10.    
  11. addMethod(Function, 'bind',bind)
  12.  
  13.  
  14. mifuncion ={
  15.     algo: function(){
  16.         this.nombre = 'carlos';
  17.     },
  18.     name: function(){
  19.         alert('tu'+ this.algo)
  20.     }.bind(this)
  21. }
  22.  
  23. mifuncion.algo();
  24. mifuncion.name();


En este otro si funciona...
Código Javascript:
Ver original
  1. addMethod = function(Obj, Name, Method){
  2.     Obj.prototype[Name] = Method
  3. }
  4.  
  5. bind = function(scope){
  6.     var alias = this;
  7.     alert(scope)
  8.     return function(){ return alias.apply(scope, arguments)}
  9. }
  10.    
  11. addMethod(Function, 'bind',bind)
  12.  
  13. mifuncion ={
  14.  
  15.     algo: function(){
  16.         this.nombre = 'carlos';
  17.     },
  18.    
  19.     name: function(){
  20.         hola = function(){
  21.             alert('hola '+this.nombre)
  22.         }.bind(this)
  23.        
  24.         hola();
  25.     }
  26. }
  27.  
  28.  
  29. mifuncion.algo();
  30. 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:)
__________________
Juegos
Juegos iphone