Меню
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP КАК СДЕЛАТЬ ПРОГРАММЫ SW3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS КИБЕРБЕЗОПАСНОСТЬ НАУКА О ДАННЫХ
     ❯   

JS Учебник


JS Версии


JS Объекты


JS Функции


JS Классы


JS Асинхронный


JS HTML DOM


JS Браузер BOM


JS Веб APIы


JS AJAX


JS JSON


JS или jQuery


JS Графика


JS Примеры


JS Рекомендация




JavaScript Доступ к объекту



JavaScript Средства доступа get и set

ECMAScript 5 (2009) представил геттеры и сеттеры.

Методы получения get и установки set позволяют вам определять средства доступа к объектам (вычисляемые свойства).


JavaScript Getter (Ключевое слово get)

В этом примере используется свойство lang для значения get свойства language.

Пример
// Создаем объект:
var person = {
firstName: "Щипунов",
lastName : "Андрей",
language : "ru",
get lang() {
return this.language;
}
};

// Отображение данных из объекта с помощью геттера:
document.getElementById("demo").innerHTML = person.lang;
Попробуйте сами »

JavaScript Setter (Ключевое слово set)

В этом примере используется свойство lang для значения set свойства language.

Пример
var person = {
firstName: "Щипунов",
lastName : "Андрей",
language : "",
set lang(lang) {
this.language = lang;
}
};

// Устанавливаем свойство объекта с помощью установщика:
person.lang = "ru";

// Отображение данных из объекта:
document.getElementById("demo").innerHTML = person.language;
Попробуйте сами »


JavaScript функция или Getter?

В чем разница между этими двумя примерами?

Пример 1

var person = {
firstName: "Щипунов",
lastName : "Андрей",
fullName : function() {
return this.firstName + " " + this.lastName;
}
};

// Отображение данных из объекта с помощью метода:
document.getElementById("demo").innerHTML = person.fullName();
Попробуйте сами »

Пример 2

var person = {
firstName: "Щипунов",
lastName : "Андрей",
get fullName() {
return this.firstName + " " + this.lastName;
}
};

// Отображение данных из объекта с помощью геттера:
document.getElementById("demo").innerHTML = person.fullName;
Попробуйте сами »

Пример 1 доступ к fullName как к функции: person.fullName().

Пример 2 доступ к fullName как к свойству: person.fullName.

Второй пример предоставляет более простой синтаксис.


Качество данных

JavaScript может обеспечить лучшее качество данных при использовании геттеров и сеттеров.

Использование свойства lang в этом примере возвращает значение свойства language в верхнем регистре:

Пример
// Создаем объект:
var person = {
firstName: "Щипунов",
lastName : "Андрей",
language : "ru",
get lang() {
return this.language.toUpperCase();
}
};

// Отображение данных из объекта с помощью геттера:
document.getElementById("demo").innerHTML = person.lang;
Попробуйте сами »

Использование свойства lang в этом примере сохраняет значение верхнего регистра в свойстве language:

Пример
var person = {
firstName: "Щипунов",
lastName : "Андрей",
language : "",
set lang(lang) {
this.language = lang.toUpperCase();
}
};

// Устанавливаем свойство объекта с помощью сеттера:
person.lang = "ru";

// Отображение данных из объекта:
document.getElementById("demo").innerHTML = person.language;
Попробуйте сами »

Зачем нужны геттеры и сеттеры?

  • Это дает более простой синтаксис
  • Это позволяет использовать одинаковый синтаксис для свойств и методов
  • Это может обеспечить лучшее качество данных
  • Это полезно для невидимой работы

Object.defineProperty()

Метод Object.defineProperty() также можно использовать для добавления геттеров и сеттеров:

Пример
// Определение объекта
var obj = {counter : 0};

// Определение установщиков
Object.defineProperty(obj, "reset", {
get : function () {this.counter = 0;}
});
Object.defineProperty(obj, "increment", {
get : function () {this.counter++;}
});
Object.defineProperty(obj, "decrement", {
get : function () {this.counter--;}
});
Object.defineProperty(obj, "add", {
set : function (value) {this.counter += value;}
});
Object.defineProperty(obj, "subtract", {
set : function (value) {this.counter -= value;}
});

// Играем со счетчиком:
obj.reset;
obj.add = 5;
obj.subtract = 1;
obj.increment;
obj.decrement;
Попробуйте сами »

Поддержка браузера

Геттеры и сеттеры не поддерживаются в Internet Explorer 8 и более ранних версиях:

Да 9.0 Да Да Да



×

Связаться с отделом продаж

Если вы хотите использовать услуги schoolsw3 как образовательное учреждение, команда или предприятие, отправьте нам электронное письмо:
sales@schoolsw3.com

Сообщить об ошибке

Если вы хотите сообщить об ошибке или внести предложение, отправьте нам электронное письмо:
help@schoolsw3.com

Schoolsw3 оптимизирован для обучения и подготовки. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно проверяются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего контента.
При использовании Schoolsw3 вы соглашаетесь прочитать и принять наши условия использования,
политику использования файлов cookie и конфиденциальности.

Авторское право 1999- принадлежит Refsnes Data. Все права защищены. Schoolsw3 работает на SW3.CSS.