Los siguientes puntos resumen lo que debería haber aprendido al leer este libro (e investigar los ejemplos de códigos). Lea cada resumen y, si no entiende lo que se dice, vuelva al tema en el libro..
Un objeto se compone de propiedades con nombre que almacenan valores.
Casi todo en JavaScript puede actuar como un objeto. Los valores complejos son objetos, y los valores primitivos pueden tratarse como objetos. Es por esto que puedes escuchar a la gente decir que todo en JavaScript es un objeto.
Los objetos se crean invocando una función constructora con el nuevo palabra clave, o mediante el uso de una expresión literal abreviada.
Las funciones constructoras son objetos (Función() objetos), así, en JavaScript, los objetos crean objetos.
JavaScript ofrece nueve funciones constructoras nativas: Objeto(), Formación(), Cuerda(), Número(), Booleano (), Función(), Fecha(), RegExp (), y Error(). los Cuerda(), Número(), y Booleano () los constructores tienen un doble propósito al proporcionar a) valores primitivos yb) envoltorios de objetos cuando sea necesario, de modo que los valores primitivos puedan actuar como objetos.
Los valores nulo, indefinido, "cuerda", 10, cierto, y falso son todos valores primitivos, sin una naturaleza de objeto a menos que se traten como un objeto.
Cuando el Objeto(), Formación(), Cuerda(), Número(), Booleano (), Función(), Fecha(), RegExp (), y Error() funciones de constructor se invocan utilizando el nuevo palabra clave, se crea un objeto que se conoce como "objeto complejo" u "objeto de referencia".
"cuerda", 10, cierto, y falso, en sus formas primitivas, no tienen cualidades de objeto hasta que se usan como objetos; luego, JavaScript, detrás de la escena, crea objetos envoltorios temporales para que tales valores puedan actuar como objetos.
Los valores primitivos se almacenan por valor y, cuando se copian, se copian literalmente. Por otro lado, los valores de objetos complejos se almacenan por referencia y, cuando se copian, se copian por referencia.
Los valores primitivos son iguales a otros valores primitivos cuando sus valores son iguales, mientras que los objetos complejos son iguales solo cuando hacen referencia al mismo valor. Es decir: un valor complejo es igual a otro valor complejo cuando ambos se refieren al mismo objeto.
Debido a la naturaleza de los objetos complejos y las referencias, los objetos de JavaScript tienen propiedades dinámicas.
JavaScript es mutable, lo que significa que los objetos nativos y las propiedades definidas por el usuario se pueden manipular en cualquier momento.
La obtención / configuración / actualización de las propiedades de un objeto se realiza mediante la notación de puntos o la notación de corchetes. La notación de corchetes es conveniente cuando el nombre de la propiedad objeto que se está manipulando tiene la forma de una expresión (por ejemplo,., Array ['prototype'] ['join']. Apply ()).
Cuando se hace referencia a las propiedades del objeto, se utiliza una cadena de búsqueda para ver primero el objeto al que se hizo referencia para la propiedad. Si la propiedad no está allí, la propiedad se busca en las funciones del constructor prototipo propiedad. Si no se encuentra allí, porque el prototipo contiene un valor de objeto y el valor se crea a partir de Objeto() constructor, el inmueble se busca en el Objeto() constructores prototipo propiedad (Objeto.prototipo). Si la propiedad no se encuentra allí, entonces se determina que la propiedad está indefinido.
los prototipo la cadena de búsqueda es cómo se diseñó la herencia (también conocida como herencia prototípica) en JavaScript.
Debido a la cadena de búsqueda de propiedades del objeto (también conocida como herencia prototípica), todos los objetos heredan de Objeto() simplemente porque el prototipo La propiedad es, en sí misma, una Objeto() objeto.
Las funciones de JavaScript son ciudadanos de primera clase: las funciones son objetos con propiedades y valores.
los esta La palabra clave, cuando se utiliza dentro de una función, es una forma genérica de referenciar el objeto que contiene la función..
El valor de esta se determina durante el tiempo de ejecución en función del contexto en el que se llama la función.
Utilizada en el ámbito global, esta palabra clave se refiere al objeto global.
JavaScript usa funciones como una forma de crear un alcance único.
JavaScript proporciona el alcance global, y es en este ámbito que existe todo el código JavaScript.
Las funciones (específicamente, las funciones encapsuladas) crean una cadena de alcance para resolver búsquedas de variables.
La cadena de alcance se configura según la forma en que se escribe el código, no necesariamente por el contexto en el que se invoca una función. Esto permite que una función tenga acceso al alcance en el que se escribió originalmente, incluso si la función se llama desde un contexto diferente. Este resultado se conoce como un cierre..
Expresiones de funciones y variables declaradas dentro de una función sin usar var convertirse en propiedades globales. Sin embargo, las declaraciones de función dentro de un ámbito de función permanecen definidas en el ámbito en el que se escriben.
Funciones y variables declaradas (sin var) en el ámbito global se convierten en propiedades del objeto global.
Funciones y variables declaradas (con var) en el ámbito global se convierten en variables globales.