PersonX = function(){};
Lugares en referencia a una función anónima en PersonX
. PersonX
apunta a una función.
PersonY = new function(){};
Lugares una referencia a un ejemplo de nueva construcción de una función de constructor anónimo en PersonY
. PersonY
apunta a un objeto.
En cuanto al prototipo, PersonY
tiene uno. Sin embargo, dado que no había propiedades y métodos asociados al constructor before ni a la instanciación after, tiene un prototipo en blanco *.
Puede verificar el prototipo PersonY
haciendo console.log(PersonY)
. Verá que tiene una propiedad prototipo (la veo como __proto__
en Chrome) que está "en blanco". Pero tiene 2 propiedades ocultas, constructor
que es la función constructora que hizo el objeto, y otra __proto__
que lo conduce al siguiente "enlace de cadena" que sería el objeto Object
.
* No está en blanco, ya que el prototipo es una cadena. Este prototipo de nivel puede estar en blanco, pero el próximo prototipo más alto puede tener, o en este caso, tiene propiedades y métodos.
Object prototype -> Constructor prototype -> Your Instance will have:
- toString() - blank - toString()
- hasOwnProperty() - hasOwnProperty()
- and more... - and more...
- ...but nothing from Constructor
Use 'function', no' new function'. –
Simplemente hazlo [nunca utilices la segunda construcción] (http://stackoverflow.com/q/10406552/1048572). – Bergi