Parte del objeto JavaScript
1: parte básica
1. Todas las variables en JavaScript son objetos, con dos excepciones nulas y indefinidas.
2.Jscript admite cuatro tipos de objetos: objetos internos, objetos generados, objetos otorgados host (todos los objetos BOM y DOM son objetos de host.) Y objetos ActiveX (componentes externos).
3. Microsoft JScript proporciona 11 objetos internos (o "incorporados"). Son matrices, booleanos, fecha, función, global, matemáticas, número, objeto, regexp, error y objetos de cadena.
4. 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, no basado en clases.
5. 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.
6. Los objetos JScript son colecciones 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.
7. Los objetos JavaScript se basan en funciones de constructor. Al usar funciones de 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 ();
8. 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.
La copia del código es la siguiente:
<script type = "text/javaScript">
// El objeto es una colección de pares de nombre/valor
var browser = {// El objeto está encerrado en aparatos ortopédicos rizados
Nombre: "Firefox",
Kernel: "Gecko"
};
</script>
La copia del código es la siguiente:
// Acceda a las propiedades del objeto a través de Dot (.) O "[]"
navegador.name // "Firefox"
navegador ["kernel"] // "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 una función de objeto especial, 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.
Aclarar el concepto:
"Basado en objetos = orientado al objeto" en JS 4. No hay clase (clase) en JS, pero se requiere un nuevo nombre llamado "Objeto prototipo", por lo que "clase = objeto prototipo"
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:
La copia del código es la siguiente:
<script type = "text/javaScript">
var boy = {}; // crear un objeto vacío
boy.name = "Xiao Ming"; // Asigna valores de acuerdo con las propiedades del objeto prototipo
boy.age = 12;
var niña = {};
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:
La copia del código es la siguiente:
<script type = "text/javaScript">
persona persona (nombre, edad) {
this.name = name;
this.age = edad;
}
</script>
Ahora podemos generar objetos de instancia.
La copia del código es la siguiente:
<script type = "text/javaScript">
var boy = nueva persona ("Xiao Ming", "12");
var niña = nueva persona ("xiaohong", "10");
alerta (boy.name); // Xiao Ming
alerta (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.
La copia del código es la siguiente:
alerta (boy.constructor == persona); //verdadero
alerta (niña.constructor == persona); //verdadero
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 la instancia del constructor.
Esto significa que podemos definir directamente esas propiedades y métodos sin cambios en el objeto prototipo.
La copia del código es la siguiente:
<script type = "text/javaScript">
persona persona (nombre, edad) {
this.name = name;
this.age = edad;
}
Persona.protype.type = "humano";
Persona.protype.eat = function () {
alerta ("comer arroz");
}
</script>
Luego, genere la instancia:
La copia del código es la siguiente:
<script type = "text/javaScript">
var boy = nueva persona ("Xiao Ming", "12");
var niña = nueva persona ("xiaohong", "10");
alerta (boy.type); // humano
boy.eat (); // comer
</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", "maow", "walk/run");
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.
La copia del código es la siguiente:
<script type = "text/javaScript">
/*Defina una clase de persona*/
persona persona (_name, _age, _salary) {
// Los atributos públicos de la clase Person, los atributos públicos de la clase se definen como: "Esto. Nombre del atributo"
this.name = _name;
// Los atributos privados de la clase de la persona, los atributos privados de la clase se definen 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, la definición del método público de la clase
Sí: "this.functionName = function () {......}"
this.show = function () {
alerta ("edad ="+edad+"/t"+"salario ="+salario); // Acceso a las propiedades privadas de la clase en el método público está permitido
}
</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 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 atributos.
La copia del código es la siguiente:
<script type = "text/javaScript">
Var Company = {
Nombre: "Microsoft",
Edades: 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.
La copia del código es la siguiente:
<script type = "text/javaScript">
var dog = {
Nombre: "Husky",
Edad: 2,
run: functer () {
regresar "123";
}
}
alerta (dog.run ()); // Si ingresa dog.run, el código de la parte de la función después de que aparezca
</script>
Parte de la matriz de JavaScript
1. Objetivo
Objeto de matriz: proporciona soporte para crear matrices de cualquier tipo de datos.
La copia del código es la siguiente:
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 usarlo
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.
La copia del código es la siguiente:
Var List = [1, 2, 3, 4, 5, ...... 100000000];
para (var i = 0, l = list.length; i <l; i ++) {
console.log (lista [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
3 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 lograr esto, declare una función, agréguela a Array.Prototype y úsela.
La copia del código es la siguiente:
función array_max ()
{
var i, max = this [0];
para (i = 1; i <this.length; i ++)
{
if (max <this [i])
max = this [i];
}
devolver 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:
La copia del código es la siguiente:
x = nueva cadena ("HI");
if (x.constructor == string) // Process (la condición es verdadera).
//o
función myfunc {
// Funcionar cuerpo.
}
y = nuevo myFunc;
if (y.constructor == myFunc) // proceso (la condición es verdadera).
Para matrices:
y = nueva matriz ();
Método de matriz:
Adjuntó una variedad de mapas mental: