Setters e getters em JavaScript são métodos menos expostos nos tempos normais. Eles não são métodos padrão e são suportados apenas em navegadores que não são da AE (pode haver outros métodos que podem ser feitos pelo kernel do IE? Não sei a solução por enquanto), mas usá-los pode fazer muitas coisas, como:
1. Restrições ao acesso a dados:
A.Value é uma chamada de método getter para a variável de valor. Se uma exceção for lançada na implementação do método Getter, o acesso à variável de valor poderá ser bloqueado.
2. Ouça as variáveis dom:
Window.Name é um atributo DOM muito útil entre os domínios (conhecidos por seus detalhes, consulte o Baidu para obter detalhes). Se você substituir a implementação do Setter do Window.name, poderá realizar a comunicação de memória assíncrona nas páginas.
3. Use sua imaginação e pode fazer muitas coisas
Todos os seguintes são transferidos:
Primeiro, vamos dar uma rápida olhada no que são getters e setters e por que eles são úteis. Então, vamos ver quais plataformas agora suportam GetTets e Setters.
Getters e setters
Getters e setters permitem que você obtenha ou configure rapidamente os dados de um objeto. De um modo geral, um objeto possui dois métodos, que são usados para obter e definir um determinado valor, como:
{getValue: function () {return this._value;}, setValue: function (val) {this._value = val;}}Um benefício óbvio de escrever JavaScript dessa maneira é que você pode usá -lo para ocultar atributos que você não deseja ser acessado diretamente pelo mundo exterior. O código final se parece com esse (salve o valor do objeto arquivado recém -criado com um fechamento):
Função Campo (val) {var value = val; this.getValue = function () {return value;}; this.setValue = function (val) {value = val;};}Então, podemos usar assim:
Var Field = new Field ("Test"); Field.Value // => Undefinedfield.setValue ("Test2") Field.getValue () // => "Test2"Vamos simular o "atributo de valor oculto" no exemplo acima, e nosso código se parece com o seguinte:
campo de função (val) {var value = val; this .__ definegetter __ ("value", function () {return value;}); this .__ definesetter __ ("value", function (val) {value = val;});}No entanto, você não gosta de escrever dessa maneira e tende a definir getters e setters no protótipo do objeto (não importa onde a variável privada esteja escrita), podemos usar outra sintaxe.
Função Campo (val) {this.value = val;} field.prototype = {get value () {return this._value;}, set valor (val) {this._value = val;}};Essa sintaxe parece incrível, mas depois de usá -la por um tempo, é fácil aceitá -lo.
Em seguida, é outro exemplo, que permite que o mundo exterior obtenha uma variedade de nomes de usuário, mas não pode obter os objetos de usuário ocultos e originais.
Site da função (Usuários) {this .__ Definegetter __ ("Usuários", function () {// JS 1.6 Array map () retornar usuários.map (function (user) {return user.name;});};}Lembre -se dos seguintes pontos:
Dentro de um objeto, cada variável pode ter apenas um getter ou setter. (Portanto, o valor pode ter um getter e um setter, mas o valor nunca tem dois getters)
A única maneira de excluir um getter ou setter é: Excluir objeto [nome]. A exclusão pode remover algumas propriedades, getters e setters comuns.
Se você usar __definegetter__ ou __defineSetter__, ele substitui o getter ou setter com o mesmo nome definido anteriormente, ou mesmo uma propriedade (propriedade).
plataforma
Os navegadores suportados são:
Firefox
Safari 3+
Opera 9.5
O exposto acima é a descrição completa dos métodos Setter e Getter introduzidos no JavaScript que o editor apresentou a você. Espero que seja útil para você. Se você quiser saber mais, preste atenção ao wulin.com.