No JavaScript, os tipos de dados são divididos principalmente em tipos primitivos e tipos de referência. Todos os tipos de referência vêm da cópia do objeto. Este artigo é uma introdução a algumas funções ocultas do objeto trazido a você pelo editor do Erro New Technology Channel. Vamos dar uma olhada!
Esta propriedade é definida no protótipo da classe. Depois que a instância do objeto é criada, ela pode ser chamada pela instância do objeto através da cadeia __proto__ e aponta para o construtor da classe atual. Isso pode determinar a qual classe um objeto pertence diretamente (diferentemente do instanceof, a instanceof não se limita à classe a que o objeto pertence diretamente, mesmo a classe pai retorna true).
[Exemplo]
trace (object.prototype.Constructor == Object); // saída true
var a = new Object ();
traço (a.constructor == objeto); // saída true
var b = new Array ();
traço (B.Constructor == Array); // saída true
traço (B.Constructor == Object); // saída falsa
rastreio (objeto b instanceof); // saída true
Propriedade: objeto .__ construtor__
Essa função de propriedade é semelhante ao objeto.Constructor, a diferença é que ela não está definida no protótipo da classe, mas é anexada à instância do objeto quando a instância do objeto é criada. Ao mesmo tempo, essa propriedade também é chamada implícita quando usada pela super -palavra -chave como construtor da classe pai e é usada para apontar para o construtor da classe pai, ou seja, super (...) é equivalente a este .__ construtor __. Call (isto, ...).
[Exemplo]
rastreio (object.prototype .__ construtor__ == objeto); // saída falsa
var a = new Object ();
traço (a .__ construtor__ == objeto); // saída true
var b = new Array ();
traço (b .__ construtor__ == Array); // saída true
traço (b .__ construtor__ == objeto); // saída falsa
Método: Object.isprototypeOf (ClassFunc)
Este método é usado para determinar se o objeto atual está na cadeia __proto__ de objeto Obj. Este método pode ser usado para determinar se uma classe é pai ou filho de outra classe.
[Exemplo]
trace (object.prototype.isprototypeof (new Object ())); // saída true
trace (object.prototype.isprototypeof (new Array ())); // saída true
rastreio (array.prototype.isprototypeof (new Object ())); // saída falsa
trace (object.prototype.isprototypeof (Array.prototype)); // julga se o objeto é a classe pai da Array, saída true
Método: Object.isPropertyEnumerable (PropName)
Este método é usado para determinar se existe um membro denominado PropName no objeto atual e pode ser enumerado (usando para ...
[Exemplo]
var a = {x: 1, y: 2};
AssetPropflags (a, ["y"], 1); // set y é invisível
traço (ay); // Somente saída 2
para (var i em a) rastreio (i); // Somente saída x
traço (a. ispertyenumerable ("x")); // saída true
rastreio (a. ispertyenumerable ("y")); // saída falsa
Método: Object.HasownProperty (PropName)
Este método é usado para determinar se um membro chamado PropName é um membro do próprio objeto atual, em vez de referenciado do protótipo da classe através da cadeia __proto__.
[Exemplo]
function test () {}
test.prototype.x = 1;
var a = new test ();
ay = 2;
traço (machado); // Saída 1
traço (A.HasownProperty ("X")); // saída falsa
traço (ay); // Saída 2
traço (A.HasownProperty ("y")); // saída true
Método: Object.ToString ()
Este método pode definir o resultado da string gerado por um objeto quando convertido em um tipo de string, que geralmente é definido no protótipo da classe.
[Exemplo]
ponto de função (x, y) {
this.x = x;
this.y = y;
}
Point.prototype.toString = function () {
retornar "[x:" + this.x + ", y:" + this.y + "]";
};
var pos = novo ponto (10, 20);
traço ("posição é" + pos); // A posição de saída é [x: 10, y: 20]
O exposto acima é uma introdução a algumas funções ocultas dos objetos de objetos. Eu acredito que todo mundo tem um entendimento claro. Mais conhecimento sobre o canal técnico está no novo canal de tecnologia errada!