Parte del objeto
Tipo de objeto
El objeto es una colección desordenada que puede almacenar objetos de cualquier tipo, y todos los demás objetos se heredan de este objeto.
Hay dos tipos de creación de objetos, uno es usar el nuevo operador y el otro es notación literal.
1. Cree un objeto usando el nuevo operador
var obj = new Object (); // Presta atención a la capitalización, también puede escribirla directamente como Object ()
Tenga en cuenta que generar un nuevo objeto a través del método nuevo objeto () es equivalente al método literal obj = {}.
2. Cree usando el método literal:
var obj = {nombre: 'trigkit4', edad: 21}; // El semicolon es lo mejor para agregarAl declarar un objeto de objeto usando literales, el constructor objeto () no se llama (excepto ff)
Object.prototype Object
Todos los constructores tienen un atributo prototipo que apunta a un objeto prototipo.
Objeto.prototype.print = function () {console.log (this)}; var obj = new Object (); obj.print () // objetoInstancia OBJ hereda directamente las propiedades y métodos de objeto. Prototipo
1. Los objetos son solo datos especiales. Los objetos tienen propiedades y métodos. JavaScript es un lenguaje orientado a objetos, pero JavaScript no usa clases. JavaScript se basa en [prototipo] [1], no basado en clases.
2. Atributo: es una variable afiliada a un objeto específico. Método: es una función que solo puede llamarse por un objeto específico.
3. Los objetos JS son una colección de propiedades y métodos. Un método es una función, que es un miembro de un objeto. Un atributo es un valor o un conjunto de valores (en forma de una matriz u objeto) que es un miembro de un objeto.
4.JS El objeto se basa en la función del constructor. Al usar la función Constructor para crear un nuevo objeto, se puede decir que se instancia un nuevo objeto. Las propiedades son variables dentro de la función del constructor.
Objetos instanciados usando funciones de constructor:
cat = nuevo animal ();
JavaScript es un lenguaje basado en objetos, y casi todo lo que encuentra es un objeto. Sin embargo, no es un verdadero lenguaje de programación orientado a objetos (OOP) porque no hay clase (clase) en su sintaxis.
<script type = "text/javaScript"> // El objeto es una colección de pares de nombre/valor de naveRSer = {// El objeto está encerrado en los aparatos ortopédicos: "Firefox", kernel: "gecko"}; </script> // Acceda al objeto atribuye el browser.name // "Firefox" Browser ["Kernel"] // "Gecko" Gecko "Los objetos (OBJCT) son una colección de propiedades, cada propiedad consta de "pares de nombre/valor". JS también define un objeto especial: una matriz, que es un conjunto ordenado de valores numerados.
JS también define un objeto especial: una función, una función es un objeto con código ejecutable asociado con él. Ejecuta el código llamando a la función y devuelve el resultado de la operación.
No hay clase en JS, pero se requiere un nuevo nombre llamado "Objeto prototipo", por lo que "Class == Prototype Object", consulte: Método de escritura de clase JavaScript (i)
2. La diferencia y la conexión entre clases (objetos prototipo) y objetos (instancias)
1. Las clases (objetos prototipo) son abstractos, conceptuales, que representan un tipo de cosas.
2. El objeto es concreto, práctico y representa algo específico.
3. La clase (objeto prototipo) es una plantilla para las instancias de objetos, y las instancias de objetos son individuos de la clase.
Una idea errónea común es que el valor literal de un número no es un objeto. Esto se debe a un error en el analizador JavaScript que intenta analizar al operador de puntos como parte del valor numérico del punto flotante.
Hay muchas soluciones para hacer que el valor literal de un número parezca un objeto.
2..ToString (); // El segundo punto se puede analizar normalmente
2.ToString (); // Presta atención a los espacios antes del punto
(2) .ToString (); // 2 se calcula primero
Eliminar atributos
La única forma de eliminar una propiedad es usar el operador Eliminar; Establecer la propiedad en indefinido o nulo realmente no elimina la propiedad, sino que simplemente elimina la asociación entre la propiedad y el valor.
Tres características principales de JavaScript orientadas a objetos
Encapsulación: no se considera la implementación interna, solo se considera el uso funcional
Herencia: heredar un nuevo objeto de un objeto existente
Polimorfismo: el llamado polimorfismo se refiere a múltiples estados que se refieren en diferentes situaciones.
1. Embalaje
La encapsulación significa agrupar los puntos en común (incluidos los atributos y los comportamientos) de las cosas que pertenecen a la misma categoría en una clase para su uso fácil. Por ejemplo, lo humano puede encapsularse de las siguientes maneras:
gente{
Edad (atributo 1)
Altura (atributo 2)
Género (atributo tres)
Hacer cosas (uno de los comportamientos)
Caminar (comportamiento 2)
Hablando (acto 3)
}
Beneficios de la encapsulación:
La encapsulación protege la integridad de los datos internos;
La encapsulación facilita la refactorización de objetos;
Debilitar el acoplamiento entre módulos y mejorar la reutilización de los objetos;
Ayuda a evitar conflictos en el espacio de nombres;
Vea el siguiente ejemplo:
<script type = "text/javaScript"> var boy = {}; // crear un objeto vacío boy.name = "Xiao Ming"; // Asignar boy.age = 12 según las propiedades del objeto prototipo, var girl = {}; niña.name = "xiaohong"; niña.age = 10; </script>Esta es la encapsulación más simple, encapsulando dos atributos en un objeto. Sin embargo, este método de escritura tiene dos desventajas. Una es que si genera más instancias, será muy problemático escribir; La otra es que no hay forma de saber si hay alguna conexión entre la instancia y el prototipo.
Modo de constructor
Para resolver el problema de generar instancias a partir de objetos prototipo, JavaScript proporciona un patrón de constructor.
El llamado "constructor" es en realidad una función ordinaria, pero esta variable se usa internamente. El uso del nuevo operador para el constructor puede generar una instancia, y esta variable se unirá al objeto de instancia.
Por ejemplo, los objetos prototipo de niño y niña se pueden escribir así ahora:
<script type = "text/javaScript"> function persona (nombre, edad) {this.name = name; this.age = edad; } </script>Ahora podemos generar objetos de instancia.
<script type = "text/javaScript"> var boy = nueva persona ("xiao ming", 12); var niña = nueva persona ("Xiao Hong", 10); alerta (boy.name); // alerta de Xiao Ming (boy.age); // 12 </script>En este momento, el niño y la niña contendrán automáticamente un atributo de constructor que apunta a su constructor.
alerta (boy.constructor == persona); //verdadero
alerta (niña.constructor); // emite la cadena completa del código de constructor, pruébelo usted mismo
Patrón prototipo JavaScript estipula que cada constructor tiene un atributo prototipo que apunta a otro objeto. Todas las propiedades y métodos de este objeto serán heredados por instancias del constructor.
Esto significa que podemos definir directamente esas propiedades y métodos sin cambios en el objeto prototipo.
<script type = "text/javaScript"> function persona (nombre, edad) {this.name = name; this.age = edad;} persona.protype.type = "humano"; persona.protype.eat = function () {alert ("comer arroz");} </script>Luego, genere la instancia:
<script type = "text/javaScript"> var boy = nueva persona ("xiao ming", "12"); var niña = nueva persona ("Xiao Hong", "10"); alerta (boy.type); // humano.eat (); // come </script>En este momento, los métodos de atributos de tipo y Eat () de todas las instancias son en realidad la misma dirección de memoria, apuntando al objeto prototipo, mejorando así la eficiencia de la operación.
alerta (boy.eat == girl.eat); //verdadero
Una propiedad prototipo es una propiedad incorporada que especifica la función del constructor que extiende el objeto.
El siguiente código agrega un nuevo tamaño de atributo a la función del constructor animal, que es el atributo prototipo del objeto CAT. Mediante el uso de propiedades prototipo, todos los objetos que extienden las funciones del constructor animal pueden acceder a la propiedad de tamaño
Cat = nuevo animal ("felino", "maullido", "caminar/correr"); cat.prototype.size = "grasa";En este caso, el atributo de tamaño de todos los objetos animales es "gordo". El prototipo predeterminado es una nueva instancia de objeto. Dado que todavía es un objeto, se pueden agregar nuevos atributos al objeto. Al igual que el estilo es un objeto en JavaScript, también puede continuar agregando propiedades después del estilo.
<script type = "text/javaScript">/*Definir una clase de persona*/function persona (_name, _age, _salary) {// El atributo público de la clase de persona, el atributo público de la clase se define como: "this.property name" this.name = _name; // El atributo privado de la clase de persona, el atributo privado de la clase se define como: "Nombre del atributo var" var age = _age; VAR SALARY = _SALARY; // Definir el método público (método privilegiado) de la clase de persona, el método público de la clase se define como: "this.FunctionName = function () {.....}" this.show = function () {alert ("edad ="+age+"/t"+"salary ="+salario); // acceder a las propiedades privadas de la clase en el método público está permitido} </script> </script>Cuando un objeto busca una determinada propiedad, primero atravesará sus propias propiedades. De lo contrario, continuará buscando el objeto referenciado por [[prototipo]]. Si no, continuará buscando el objeto a la que [[prototipo]]]. [[Prototipo], etc. hasta que [[Prototipo]].
En pocas palabras, es guardar una referencia a otro objeto a través del objeto [[prototipo]] y buscar los atributos a través de esta referencia. Esta es la cadena prototipo.
objeto nulo
La función de JS que asigna valores nulos a variables es:
Asignar un puntero nulo facilita la comprensión de que esta variable está preparada para almacenar objetos. También es conveniente ajustar el incorrecto
Objeto de ventana global
Cualquier función o variable global en JavaScript es una propiedad de la ventana.
El objeto propio es exactamente el mismo que el objeto de la ventana. El yo generalmente se usa para confirmar que está en la forma actual.
Los principales objetos principales de la ventana son los siguientes:
Objeto de documento de JavaScript
Objeto de marcos de JavaScript
Objeto de historia de JavaScript
Objeto de ubicación de JavaScript
Objeto JavaScript Navegator
Objeto de pantalla JavaScript
Varios métodos comunes
Método ValueOf (): Devuelve el valor original del objeto especificado
El método Split () divide la cadena en una matriz de cadenas y devuelve esta matriz.
El método indexOf () devuelve la primera ocurrencia de un valor de cadena especificado en la cadena.
El método Substring () se usa para extraer caracteres en una cadena entre dos subíndices especificados.
El método substr () extrae el número especificado de cadenas que comienzan desde la posición STARTPOS desde la cadena.
El método Join () se usa para poner todos los elementos en la matriz en una cadena.
ArrayObject.join (delimitador)
El método reverse () se usa para revertir el orden de los elementos en una matriz.
El método SLICE () devuelve el elemento seleccionado de una matriz existente.
Objeto literal
Los literales de objetos son procesos utilizados para crear una gran cantidad de propiedades, de la siguiente manera:
<script type = "text/javaScript"> var empresa = {nombre: "Microsoft", edad: 39, empleados: 99000, CEO: "Nadella"}; </script>Cabe señalar aquí que los atributos y los valores de los atributos están separados por colons (:); múltiples atributos están separados por comas (,). El objeto literal también puede definir métodos. Simplemente escriba la función en los atributos de este objeto. Esta es una función anónima. Solo necesita escribir su nombre de método () para llamarlo.
<script type = "text/javaScript"> var dog = {name: "husky", edad: 2, run: function () {return "123";}} alert (dog.run ()); // Si ingresa dog.run, el código para la parte de la función detrás de él aparecerá </script>>Envoltura de tipo de valor básico
Hay cinco tipos de valor básicos en JS: número, cadena, booleano, nulo y indefinido. A excepción de NULL e indefinido, los otros tres tienen los llamados objetos básicos de envoltura. El número de constructores incorporado (), String () y Boolean () se puede usar para crear objetos de envoltura.
var num = nuevo número (10); console.log (typeof num); // objeto objeto método objeto () // devuelve un objeto de objeto vacío (indefinido) // devuelve un objeto vacío objeto (null) // devuelve un objeto vacío objeto (1) // equivalente al nuevo número (1) objeto ('foo') objeto (verdadero) // equivalente a nuevo cadena ('foo') objeto (verdadero) //expectivalent Objeto boolean (true) ([]) // Devuelve el objeto de matriz original ({}) // Devuelve el objeto original del objeto (function () {}) // Devuelve la función originalParte de la matriz
1. Objetivo
Objeto de matriz: proporciona soporte para crear matrices de cualquier tipo de datos.
arrayobj = new Array ()
ArrayObj = nueva matriz ([tamaño])
arrayobj = new Array ([element0 [, element1 [, ... [, elementn]]]]))
Definición: var arr = [2,3,45,6]; var arr = nueva matriz (2,4,5,7)
No hay diferencia en la definición entre los dos, [] tiene un alto rendimiento porque el código es corto.
Use literales de matriz y objetos: var atest = []; Al crear matrices, usar literales de matriz es una buena opción; Del mismo modo, los literales de objetos también se pueden usar para ahorrar espacio. Las siguientes dos líneas son iguales, pero usa los literales de objetos para que sean más cortos:
var otest = nuevo objeto; // Intenta no usar var otest = {}; // la mejor opción, o var 0Test = [];Transversal Para lograr el mejor rendimiento de las matrices de recorrido, se recomienda usar un clásico para bucle.
var list = [1, 2, 3, 4, 5, ...... 100000000]; para (var i = 0, l = list.length; i <l; i ++) {console.log (list [i]);}El código anterior tiene un procesamiento, que es para almacenar en caché la longitud de la matriz a través de l = list.length.
Constructor de matriz
Dado que el constructor de Array es un poco ambiguo cuando se trata de cómo manejar los argumentos, siempre se recomienda usar la sintaxis literal de matrices, [] - para crear matrices.
Por lo tanto, el siguiente código será confuso:
nueva matriz (3, 4, 5); // Resultado: [3, 4, 5]
nueva matriz (3) // resultado: [], la longitud de esta matriz es 3
Intente evitar usar constructores de matriz para crear nuevas matrices. Se recomienda usar la sintaxis literal de matrices. Son más cortos y más concisos, lo que aumenta la legibilidad del código.
Propiedades de la matriz de matriz
Tres propiedades de la matriz de matriz: atributo de longitud, atributo prototipo, atributo de constructor
1. Atributo de longitud
El atributo de longitud representa la longitud de la matriz, es decir, el número de elementos en él. Debido a que el índice de una matriz siempre comienza desde 0, los límites superiores e inferiores de una matriz son: 0 y longitud-1 respectivamente. A diferencia de la mayoría de los otros idiomas, la propiedad de longitud de las matrices JavaScript es mutable, lo que requiere una atención especial.
2. Atributo de Prototipo
Devuelve una referencia al prototipo de tipo de objeto. El atributo prototipo es común al objeto.
Para los objetos de matriz de matriz, use el siguiente ejemplo para ilustrar el propósito del atributo prototipo.
Agregue un método al objeto de matriz para devolver el valor máximo del elemento en la matriz. Para hacer esto, declare una función, agréguela a Array.Prototype y úsela.
function array_max () {var i, max = this [0]; para (i = 1; i <this.length; i ++) {if (max <this [i]) max = this [i]; } return max; } Array.prototype.max = array_max; var x = nueva matriz (1,2,3,4,5,6); var y = x.max ();Después de ejecutar este código, Y guarda el valor máximo en la matriz x o 6.
3. Atributo de constructor
Una función que representa la creación de un objeto. Descripción: El atributo del constructor es un miembro de todos los objetos con prototipo. Incluyen todos los objetos nativos de JScript, excepto objetos globales y matemáticos. La propiedad del constructor contiene una referencia a la función que construye una instancia de objeto específica.
Por ejemplo:
x = nueva cadena ("HI"); if (x.constructor == string) // Process (la condición es verdadera). // o función myFunc {// func. } y = nuevo myFunc;if (y.constructor == myFunc) // proceso (la condición es verdadera).
Para matrices:
y = nueva matriz ();
Método de objeto de matriz
Método sort ()
gramática
ArrayObject.sort (Sortby)
Sortby opcional. Especificar la orden de clasificación. Debe ser una función.
var arr = [11,2,28,4,5,1];
console.log (arr.sort ()); // return [1, 11, 2, 28, 4, 5]
¿Por qué los 11 y 28 aquí no están organizados en orden? Esto se debe a que el orden sin parámetros se clasifica en el orden de codificación de caracteres.
Entonces, ¿qué pasa si queremos clasificar los elementos de la matriz de pequeños a grandes? Mira el siguiente código:
var arr = [11,2,28,4,5,1]; console.log (arr.sort (function (a, b) {return ab; // return [1, 2, 4, 5, 11, 28]}));Si desea ordenar por otros criterios, debe proporcionar una función de comparación que compara dos valores y luego devuelve un número que ilustra el orden relativo de los dos valores. La función de comparación debe tener dos parámetros A y B, y su valor de retorno es el siguiente:
Si A es menor que B, A debe aparecer antes de B en la matriz ordenada, entonces se devuelve un valor inferior a 0.
Si A es igual a B, regrese 0.
Si A es mayor que B, se devuelve un valor mayor que 0.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.