Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
people:etanter:jsproto [2012/11/09 18:23] – created etanter | people:etanter:jsproto [2012/11/09 18:29] (current) – 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 |
< | < | ||
Line 5: | Line 5: | ||
> o.__proto__ | > o.__proto__ | ||
Object | Object | ||
- | </ | ||
- | |||
- | Que es Object? una función nativa: | ||
- | < | ||
> Object | > Object | ||
function Object() { [native code] } | function Object() { [native code] } | ||
</ | </ | ||
- | La propiedad __proto__ se puede setear explicitamente para especificar quien es el objeto padre: | + | La propiedad |
< | < | ||
> o.x | > o.x | ||
Line 31: | Line 27: | ||
</ | </ | ||
- | Las funciones son objetos, entonces tienen | + | Las funciones son objetos, entonces tienen |
< | < | ||
> f = function (x) { return x; } | > f = function (x) { return x; } | ||
> f.__proto__ | > f.__proto__ | ||
- | > function Empty() {} | + | function Empty() {} |
> f.__proto__() | > f.__proto__() | ||
undefined | undefined | ||
Line 43: | Line 39: | ||
Como una función es un objeto, también puede delegar a otro objeto: | Como una función es un objeto, también puede delegar a otro objeto: | ||
< | < | ||
- | f.__proto__ = { x : 10 } | + | > f.__proto__ = { x : 10 } |
- | f.x | + | > f.x |
10 | 10 | ||
</ | </ | ||
- | Una función no solamente parte con __proto__, sino que ademas parte con una propiedad llamada ' | + | Una función no solamente parte con %%'__proto__'%%, sino que ademas parte con una propiedad llamada ' |
< | < | ||
> f = function() {} | > f = function() {} | ||
Line 58: | Line 54: | ||
</ | </ | ||
- | Ojo que // | + | Ojo que // |
< | < | ||
> f.prototype = { x : 10 } | > f.prototype = { x : 10 } |