No JavaScript, você pode ler e escrever a propriedade do objeto através do operador DOT "." ou o operador de suporte "[]":
A cópia do código é a seguinte:
var o = {x: 1, y: 2};
console.log (OX); // 1
console.log (o ["y"]); // 2
oy = 7;
console.log (o ["y"]); // 7
Vale a pena notar que, se o operador do suporte for usado, o tipo de valor no operador deve ser string ou uma expressão que pode ser convertida em uma string:
A cópia do código é a seguinte:
console.log (o [y]); // referenceError: y não é definido
var v = "y";
console.log (o [v]); // 7
Ao contrário da linguagem Java, as propriedades dos objetos no JavaScript podem ser adicionadas ou excluídas dinamicamente. Ao atribuir uma propriedade, se a propriedade não existir, o JavaScript adicionará dinamicamente essa propriedade ao objeto:
A cópia do código é a seguinte:
oz = 99;
console.log (o); // objeto {x = 1, y = 7, z = 99}
Leitura de propriedade na cadeia de herança do protótipo
Todos os objetos no JavaScript possuem um protótipo de protótipo de protótipo e propriedade herdeira do objeto Prototype; Portanto, as propriedades de um objeto em JS são divididas em duas categorias:
1. A propriedade de propriedade do próprio objeto ("Propriedade própria").
2. Propriedade herdada do objeto de protótipo.
Ao ler a propriedade de um objeto, as regras seguidas são as seguintes:
1. Pesquise a propriedade que precisa ser lida na coleção de propriedades do objeto ("Propriedade própria"); Se puder ser pesquisado, lerá diretamente a propriedade e retornará seu valor.
2. Se a propriedade não puder ser pesquisada na coleção de propriedades do objeto ("Propriedade própria"), continue pesquisando na cadeia de protótipo do protótipo do objeto até que a propriedade seja pesquisada e seu valor seja retornado.
3. Se a propriedade não puder ser pesquisada na coleção de propriedades do objeto ("Propriedade própria") e a propriedade não puder ser pesquisada em todos os objetos de protótipo do objeto, a indefinição será retornada.
Escreva a propriedade na cadeia de herança do protótipo
Ao escrever para a propriedade de um objeto JavaScript, as regras seguidas são as seguintes:
1. Se o próprio objeto tiver a propriedade e a propriedade for gravada, escreva o novo valor para a propriedade. Se a propriedade for somente leitura, um erro será relatado.
2. Se o próprio objeto não tiver a propriedade e não existir em todos os seus protótipos objetos, adicione essa propriedade ao objeto.
3. Se o próprio objeto não tiver a propriedade, mas a propriedade existe em seu objeto de protótipo e é gravável, o JS criará essa propriedade no objeto; Ou seja, o objeto substitui a propriedade em seu objeto de protótipo. Esse valor de propriedade no objeto de protótipo permanece inalterado.
4. Se o próprio objeto não tiver a propriedade, mas a propriedade existe em seu objeto de protótipo e for somente leitura, um erro será relatado.
5. Se o próprio objeto não tiver a propriedade, mas o método do setter da propriedade existe em seu objeto de protótipo, o JS chamará o método setter no objeto de protótipo. Vale ressaltar que, ao executar o método do setter, se a atribuição da variável estiver envolvida, a operação de atribuição atuará no próprio objeto e o objeto de protótipo não será alterado. Para esse comportamento, ele pode ser entendido como: o objeto herda a função Setter do protótipo e o executa.
A partir das regras acima, podemos descobrir que, se a operação de atribuição para a propriedade for bem -sucedida, o próprio objeto sempre será modificado no final e seu protótipo de protótipo objeto não será alterado.