Outro dia “descobri” por acaso uma feature nova da linguagem.
Só eu que não sabia que javascript tinha uma sintaxe especial pra getters e setters?
Veja só, abre um console aí e digita o seguinte:
o = {a:1}; //nada de mais o = {a:1, get x(){return this.a++;}}; //cuma??? o.x o.x o.x o.a; //só eu que não sabia disso???
Interessante né.
A princípio eu pensei: “legal, mas não consigo pensar em muitas aplicações práticas pra isso.”
Até que bateu a idéia de fazer um binding AngularJS (usando ng-model) com uma property baseada em getter e setter. Como prova de conceito, imagina um controle de paginação, com um botão “ANTERIOR”, um input com o numero da página, e um botão “PRÓXIMO”. Veja como fica simples:
http://tonylampada.github.io/randomstuff/getters_n_setters.html
Não é o tipo de coisa que se usa todo dia, mas é bom saber 🙂