En JavaScript, los tipos de datos se dividen principalmente en tipos y tipos de referencia primitivos. Todos los tipos de referencia provienen de la copia del objeto. Este artículo es una introducción a algunas funciones ocultas del objeto objeto que le presenta el editor del canal de tecnología de nuevo error. ¡Echemos un vistazo!
Esta propiedad se define en el prototipo de la clase. Después de crear la instancia del objeto, la instancia del objeto puede llamarse a través de la cadena __proto__ y apunta al constructor de la clase actual. Esto puede determinar a qué clase pertenece directamente un objeto (a diferencia de instancia de, instanciaf no se limita a la clase a la que pertenece directamente el objeto, incluso la clase principal regresa verdadero).
[Ejemplo]
traza (objeto.prototype.constructor == objeto); // Salida verdadera
var a = nuevo objeto ();
traza (a.constructor == objeto); // Salida verdadera
var b = nueva matriz ();
traza (B.Constructor == Array); // Salida verdadera
traza (B.Constructor == objeto); // Salida Falso
traza (b instancia de objeto); // Salida verdadera
Propiedad: Object .__ Constructor__
Esta función de propiedad es similar a Object.Constructor, la diferencia es que no se define en el prototipo de la clase, pero se adjunta a la instancia del objeto cuando se crea la instancia del objeto. Al mismo tiempo, esta propiedad también se denomina implícitamente cuando la palabra súper clave la usa como el constructor de clase principal, y se usa para señalar al constructor de clase principal, es decir, super (...) es equivalente a este .__ Constructor __. Llame (esto, ...).
[Ejemplo]
traza (objeto.prototype .__ constructor__ == objeto); // Salida Falso
var a = nuevo objeto ();
traza (A .__ Constructor__ == Objeto); // Salida verdadera
var b = nueva matriz ();
traza (B .__ constructor__ == Array); // Salida verdadera
traza (b .__ constructor__ == objeto); // Salida Falso
Método: Object.IsprototypeOF (ClassFunc)
Este método se utiliza para determinar si el objeto actual está en la cadena __proto__ del objeto obj. Este método se puede usar para determinar si una clase es padre o hijo de otra clase.
[Ejemplo]
traza (objeto.prototype.IsprototypeOf (nuevo objeto ())); // Salida verdadera
traza (objeto.prototype.isPrototypeOf (new Array ())); // Salida verdadera
traza (array.prototype.isPrototypeOf (nuevo objeto ())); // Salida Falso
traza (objeto.prototype.isPrototypeOf (array.prototype)); // juzga si el objeto es la clase principal de Array, salida verdadera
Método: Object.IsPropertyenumerable (PropName)
Este método se utiliza para determinar si un miembro llamado PropName existe en el objeto actual y puede enumerarse (usando para ... en), en otras palabras, si es visible (usando la función global de AssetPropflags para establecer si las propiedades del objeto son visibles).
[Ejemplo]
var a = {x: 1, y: 2};
AssetPropflags (a, ["y"], 1); // set y es invisible
traza (ay); // Solo salida 2
para (var i en a) traza (i); // Solo salida x
traza (a.isPropertyenumerable ("x")); // Salida verdadera
traza (a.isPropertyenumerable ("y")); // Salida Falso
Método: Object.HasownProperty (PropName)
Este método se utiliza para determinar si un miembro llamado PropName es un miembro del objeto actual, en lugar de referenciado desde el prototipo de la clase a través de la cadena __proto__.
[Ejemplo]
función test () {}
test.prototype.x = 1;
var a = nuevo test ();
ay = 2;
traza (ax); // Salida 1
traza (A.HasownProperty ("x")); // Salida Falso
traza (ay); // Salida 2
Trace (A.HasownProperty ("Y")); // Salida verdadera
Método: Object.ToString ()
Este método puede definir el resultado de la cadena generado por un objeto cuando se convierte en un tipo de cadena, que generalmente se define en el prototipo de clase.
[Ejemplo]
punto de función (x, y) {
this.x = x;
this.y = y;
}
Point.prototype.ToString = function () {
return "[x:" + this.x + ", y:" + this.y + "]";
};
var pos = nuevo punto (10, 20);
Trace ("La posición es" + POS); // La posición de salida es [x: 10, y: 20]
Lo anterior es una introducción a algunas funciones ocultas de objetos de objetos. Creo que todos tienen una comprensión clara. ¡Más conocimiento sobre el canal técnico está en el nuevo canal de tecnología incorrecto!