Los objetos de objetos en JavaScript son la clase base de todos los objetos en JS, es decir, todos los objetos en JS se derivan de objetos de objetos. Los objetos de objetos se usan principalmente para encapsular los datos arbitrarios en la forma de objeto.
1. Introducción a la clase de objetos
La clase de objeto es la clase base (clase principal) de todas las clases de JavaScript, que proporciona una manera fácil de crear objetos personalizados sin requerir que los programadores definan a los constructores.
2. Propiedades principales de la clase de objetos
1.Constructor: Constructor de objeto.
2.Prototipo: obtenga el objeto prototipo de la clase, propiedad estática.
3. Métodos principales de clase de objetos
1.HasownProperty (Propertyname)
Determina si el objeto tiene un atributo específico. Esta propiedad debe especificarse con una cadena, por ejemplo, obj.hasownproperty ("nombre"), devolviendo un valor booleano. Este método no puede verificar si la cadena prototipo del objeto tiene esta propiedad; Debe ser un miembro del objeto en sí.
var str = ""; alerta ("str.hasownproperty (/" split/") es:"+str.hasownproperty ("split")); // return falsealert ("string.prototype.hasownproperty (/" split/") es:"+string.prototype.hasownproperty ("split")); // devolver verdaderoResultados de ejecución:
El uso de laProperty de Haswn no solo está aquí. En jQuery, un paso indispensable para escribir complementos es inicializar los parámetros. Uno de los métodos muy importantes es $ .extend (); Su principio es aplicar el método de HaswnProperty (); Use en el bucle para atravesar miembros del objeto, si hay miembros del objeto del mismo nombre, si lo hay, reemplace el anterior con el nuevo miembro del objeto. De esta manera, podemos modificar los cambios de parámetros en el método para controlar el proceso del programa. Para aquellas partes que no han cambiado, aún podemos usar el valor predeterminado para controlarlo. También podemos simplemente simular esta función de extensión, como sigue
function extend (target, fuente) {// Target Old Source nuevo para (var i en fuente) {if (target.hasownproperty (i)) {target [i] = fuente [i];}} return Target;} var a = {"primero":, "segundo": "lyl", "tercer": "bob"}; var b = {"tercero": "leo"}; extend (a, (AT (A, (A, b) en a) {alerta (a [i]); // Originalmente era Bob, pero ahora se ha convertido en Leo}2.IsprototypeOF (objeto)
Determine si el objeto es un prototipo de otro objeto.
obj1.IsprototypeOf (OBJ2);
OBJ1 es una instancia de un objeto; OBJ2 es otro objeto que verificará su cadena prototipo. Las cadenas prototipo se pueden usar para compartir la funcionalidad entre diferentes instancias del mismo tipo de objeto. Si la cadena prototipo de OBJ2 contiene OBJ1, entonces el método ISPrototypeOF devuelve verdadero. Si OBJ2 no es un objeto u OBJ1 no aparece en la cadena prototipo en OBJ2, el método ISPrototypeOF devolverá False.
<script type = "text/javaScript"> function foo () {this.name = 'foo';} function bar () {} bar.prototype = new foo (); var goo = new Bar (); alert (goo.name); //fooalert(bar.prototype.isprototipof(goo))) ;//true, si hay la gao de objeto actual en la cadena prototipo de barra, entonces el método ISPrototypeOf devuelve verdadero </script>3.PropertyisEnumerable (Propertyname)
A través de este método, podemos detectar si el miembro de este objeto es transitable. Si es transitable, demuestra que este objeto se puede atravesar usando un bucle para en bucle.
El formato es el siguiente: obj.propertyisenumerable (Propertyname)
Si PropertyName existe en OBJ y se puede enumerar exhaustivamente usando un para ... en bucle, entonces la propiedad PropertyIseNumerable devuelve verdadero. Si el objeto no tiene la propiedad especificada o la propiedad especificada no es enumerable, la propiedad PropertyIsEnumerable devuelve falso. Por lo general, las propiedades predefinidas no son enumerables, mientras que las propiedades definidas por el usuario siempre son enumerables.
4.ToString (): devuelve la cadena correspondiente al objeto
5.ValueOf (): Devuelve el tipo original correspondiente al objeto
Los 5 métodos anteriores se definen en Object.Prototype. Todos los objetos en ECMAScript se heredan del objeto, por lo que todos los objetos en ECMAScript tienen varios métodos.
Código de prueba 1:
var p = nuevo objeto (); // Crear un objeto directamente a través del objeto // atributo dinámico p.age =; p.name = "克到到到到" para objetos p; // extiende la clase de objeto y agregue un método show objeto.prototype.show = function () {alert (this.age+"/t"+this.name);} alerta (p.age); p.show (); docum ent.write ("<pre>"); document.writeLn ("P.Constructor:"+P.Constructor); // Obtener el Constructor del objeto Document.WriteLn ("Object.Prototype:"+Object.Prototype); // Obtenga el objeto Prototype, Prototype es una propiedad estática y solo puede pasar document.WriteLn ("P.IsprototypeOf (P):"+P.ISprototypeOf (P)); Document.WriteLn ("P.HasownProperty (/" Age/"):"+P.HasownProperty ("Age")); Document.Writeln ("P.Property Isenumerable (/" Age/")::::: "+P.PropertyiseNUmerable (" edad ")); document.writeLn (" p.ToString (): "+p.ToString ()); document.writeLn (" p.valueOf (): "+p.valueOf ()); document.write (" </pre> "); document.write (" </pre> ");Resultados de ejecución:
Código de prueba 2:
var Car = function(){};Car.prototype.hello = function(){alert("hello car");};var car = new Car();car.f = function() {alert("custom method");}document.write("<pre>");document.writeln("car.hasOwnProperty(/"f/") is: "+car.hasownproperty (" f ")); // ture, el objeto de automóvil tiene el método f documento.writeLn (" Car.PropertyiseNumerable (/"f/")) es: "+Car.PropertyiseNumerable (" f ")); // Ture, Car Object tiene el método F, el método f es enumerable document.writeLn ("Car.HasownProperty (/" Hello/")"+Car.HASOWNProperty ("Hello")); // falso, porque el auto en sí no tiene el método Hello Document.WriteLn ("Car.PropertyiseNumerable (/" Hello/") El resultado es:"+Car.PropertyiseNumerable ("Hello"); // falso, sin este método, por supuesto, el resultado de document.writeLn ("car.constructor.prototype.hasownproperty (/" hello/") el resultado es:"+car.constructor.prototype.hasownproperty ("hello")); // Verdadero, el prototipo del automóvil de la clase de automóvil tiene el método Hello Document.WriteLn ("Car.Constructor.Prototype.PropertyiseNumerable (/" Hello/") y el resultado es:"+Car.Constructor.Prototype.PropertyiseNumerable ("Hello")); // TERRO, el prototipo de la clase de auto El método Hello Hello's Hello's Hello Method es enumerable es el método enumerable enumerable de Hello. document.writeLn ("Car.prototype.hasownproperty (/" hello/") y el resultado es:"+car.prototype.hasownproperty ("hello")); // true, el prototipo de la clase de automóviles tiene el método Hello Document.writeln ("Car.prototype.propertyisenumerable (/" Hello/") El resultado es: el resultado: "+Car.prototype.propertyisenumerable (" hola ")); document.write (" </pre> ");Resultados de ejecución:
Lo anterior es una explicación detallada de la clase de objetos en JS que el editor le presentó, incluido el resumen de los puntos de conocimiento de JavaScript (once). Espero que te sea útil.