Obviamente, este é um tópico irrelevante para o IE (exceto o IE avançado). Apesar disso, os alunos interessados devem aprender sobre a implementação de getters e setters no padrão ECMAScript5. Em um objeto, a operação mais usada de propriedades ou métodos é lida (referência) e grava. Por exemplo, O.Get, que é uma operação de leitura e O.Set = 1 é uma operação de gravação. De fato, na implementação dos mais recentes navegadores convencionais, exceto o IE, o valor -chave de qualquer objeto pode ser substituído pelos métodos Getter e Setter, que é chamado de "atributo de acessório".
Não há dúvida de que o Getter é responsável por consultar o valor, não leva parâmetros e o Setter é responsável por definir o valor da chave. O valor é passado na forma de parâmetros. Em seu corpo de função, todo o retorno é inválido. Diferentemente das propriedades comuns, quando apenas obtém ou definido é declarado, a propriedade de memória não pode ter lido e gravação. Quando possui apenas um método getter, ele é lido apenas. Da mesma forma, quando possui apenas um método de setter, o que você lê é sempre indefinido. Como declarar atributos de memória do objeto? A maneira mais rápida é usar a sintaxe dos literais de objeto para escrever. Consulte o seguinte código:
A cópia do código é a seguinte:
var oo = {
Nome: 'xianxin',
Get Sex () {
retornar 'homem';
}
};
// Obviamente, isso não é permitido, porque Xianxin não quer que o mundo exterior mude o fato de que ele é um homem, então apenas a função somente leitura está definida para sexo.
oo.sex = 'mulher';
console.log (oo.sex); // O resultado ainda é homem
Curiosamente, isso subverte nosso entendimento anterior, ou seja, a palavra -chave da função não é usada ao definir o método. De fato, obtenha ou definido aqui, você pode entendê -lo como uma função em dois estados diferentes: o lado inclusivo (escreva), o lado seguro (leia), quando um todo é desmembrado de uma forma diferente, significa que não precisamos mais seguir a tradição em termos de expressão, por isso não usamos colonos para separar chaves e valores. Em seguida, continue com o exemplo acima. Como você se tornará leitura e gravação com base nas propriedades da memória? Talvez o parágrafo a seguir lhe dê a resposta:
A cópia do código é a seguinte:
var oo = {
Nome: 'xianxin',
Get Sex () {
if (this.sexx) {
retornar this.Sexx;
}outro{
retornar 'homem';
}
}, defina sexo (val) {
this.sexx = val;
}
};
// oh, ele é tão tolerante que até as pessoas mudam de sexo, ele aceita.
oo.sex = 'mulher';
console.log (oo.sex); // resultado mulher
Talvez você pense que isso é desnecessário, porque podemos ignorar completamente Get, definir e permitir diretamente que o método de sexo tenha duas permissões. Mas a razão pela qual retiramos o Get and Set separadamente é entender mais claramente a operação de valor-chave do ECMAScript5 no objeto JavaScript, uma interpretação mais rigorosa. Obviamente, na China poluída pelo IE, novas tecnologias convencionais sempre parecem fora do lugar. No desenvolvimento real do projeto, você nunca pode usar Get and Set, mas quem pode garantir que você não o fará no futuro ...