Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
people:etanter:jsproto [2012/11/09 14:23] etanterpeople:etanter:jsproto [2012/11/09 14:27] etanter
Line 1: Line 1:
-En JavaScript, todo objeto tiene una propiedad __proto__ que referencia el objeto al cual el objeto delega. Por defecto, el padre de cada objeto es Object:+En JavaScript, todo objeto tiene una propiedad %%'__proto__'%% que referencia el objeto al cual el objeto delega. Por defecto, el padre de cada objeto es Object:
  
 <code> <code>
Line 13: Line 13:
 </code> </code>
  
-La propiedad __proto__ se puede setear explicitamente para especificar quien es el objeto padre:+La propiedad %%'__proto__'%% se puede setear explicitamente para especificar quien es el objeto padre:
 <code> <code>
 > o.x > o.x
Line 31: Line 31:
 </code> </code>
  
-Las funciones son objetos, entonces tienen un __proto__, el cual por defecto es una función con cuerpo vacío:+Las funciones son objetos, entonces tienen una propiedad %%'__proto__'%%la cual por defecto apunta a una función con cuerpo vacío:
  
 <code> <code>
Line 48: Line 48:
 </code> </code>
  
-Una función no solamente parte con __proto__, sino que ademas parte con una propiedad llamada 'prototype'. Esta por defecto apunta a Object. Esta propiedad se usa para setear el __proto__ de los objetos creados via 'new' con esta función:+Una función no solamente parte con %%'__proto__'%%, sino que ademas parte con una propiedad llamada 'prototype'. Esta por defecto apunta a Object. Esta propiedad se usa para setear el %%'__proto__'%% de los objetos creados via 'new' con esta función:
 <code> <code>
 > f = function() {} > f = function() {}
Line 58: Line 58:
 </code> </code>
  
-Ojo que //reasignar// el 'prototype' de una función no afecta el __proto__ de los objetos ya creados a partir de esa función. Pero si, //mutar// este 'prototype' afecta los objetos ya creados.+Ojo que //reasignar// el 'prototype' de una función no afecta el %%'__proto__'%% de los objetos ya creados a partir de esa función. Pero si, //mutar// este 'prototype' afecta los objetos ya creados.
 <code> <code>
 > f.prototype = { x : 10 } > f.prototype = { x : 10 }