Сеттеры и Getters в JavaScript - это методы, которые менее подвержены воздействию в нормальное время. Они не являются стандартными методами и сами и поддерживаются только в браузерах, не являющихся Броузами (могут быть и другие методы, которые могут быть выполнены ядром IE? Я пока не знаю решения), но использование их может сделать много вещей, например::
1. Ограничения на доступ к данным:
А. Если исключение добавлено в реализации метода Getter, доступ к переменной значения может быть заблокирован.
2. Слушайте переменные DOM:
window.name - это очень полезный атрибут DOM в разных доменах (известный своими деталями, см. Baidu для деталей). Если вы переопределяете реализацию Setter window.name, вы можете реализовать асинхронную связь памяти на страницах.
3. Используйте свое воображение и может многое сделать
Все следующие передаются:
Во -первых, давайте быстро рассмотрим, что такое Getters и Setters и почему они полезны. Затем давайте посмотрим, какие платформы теперь поддерживают Gettets и Setters.
Getters и Setters
Getters и Setters позволяют быстро получить или настроить данные объекта. Вообще говоря, у объекта есть два метода, которые используются для получения и установки определенного значения, например:
{getValue: function () {return this._value;}, setValue: function (val) {this._value = val;}}Одно очевидное преимущество написания JavaScript заключается в том, что вы можете использовать его, чтобы скрыть атрибуты, к которым вы не хотите получить непосредственно к внешнему миру. Окончательный код выглядит так (сохраните значение недавно созданного объекта с закрытием):
Функциональное поле (val) {var value = val; this.getValue = function () {return value;}; this.setValue = function (val) {value = val;};}Итак, мы можем использовать это так:
var field = new Field ("test"); field.value // => undefinedfield.setValue ("test2") field.getValue () // => "test2"Давайте смоделируем «атрибут скрытого значения» в примере выше, и наш код выглядит так:
Функциональное поле (val) {var value = val; this .__ definegetter __ ("value", function () {return value;}); this .__ definesetter __ ("value", function (val) {value = val;});}Тем не менее, вы не любите писать таким образом и, как правило, определяете Getters и Setters в прототипе объекта (не имеет значения, где написана частная переменная), мы можем использовать другой синтаксис.
Функциональное поле (val) {this.value = val;} field.prototype = {get value () {return this._value;}, set value (val) {this._value = val;}};Этот синтаксис выглядит невероятно, но после его использования некоторое время его легко принять.
Далее - еще один пример, который позволяет внешнему миру получить множество имен пользователей, но не может получить исходные скрытые пользовательские объекты.
Функциональный сайт (users) {this .__ definegetter __ ("users", function () {// js 1.6 Marray Map () return users.map (function (user) {return user.name;});};}Помните следующие моменты:
Внутри объекта каждая переменная может иметь только один Getter или Setter. (Таким образом, значение может иметь Getter и Setter, но значение никогда не имеет двух добычи)
Единственный способ удалить Getter или Setter: удалить объект [имя]. DELETE может удалить некоторые общие свойства, Getters и Setters.
Если вы используете __definegetter__ или __definesetter__, он переопределяет геттер или сеттер с тем же именем, определенным ранее, или даже свойство (свойство).
платформа
Поддерживаемые браузеры:
Firefox
Сафари 3+
Опера 9.5
Выше приведено полное описание методов сеттера и геттера, представленных в JavaScript, которые редактор представил вам. Я надеюсь, что это будет полезно для вас. Если вы хотите узнать больше, пожалуйста, обратите внимание на wulin.com.