A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Functions/set below:

setter - JavaScript | MDN

setter

Baseline Widely available

Оператор set связывает свойство объекта с функцией, которая будет вызвана при попытке установить это свойство.

Синтаксис
{set prop(val) { . . . }}
{set [expression](val) { . . . }}
Параметры
prop

Имя свойства для привязки к заданной функции.

val

Псевдоним переменной, которая хранит значение, неудавшегося определения prop.

expression

Начиная с ECMAScript 6, вы также можете использовать выражения для вычисляемого имя свойства для привязки к данной функции.

Описание

В JavaScript, сеттер можно использовать для выполнения функции, когда будет попытка изменения указанного свойства. Сеттеры используются чаще всего в сочетании с геттерами для создания одного из видов псевдо-свойства. Невозможно одновременно иметь сеттер для свойства, которое содержит фактическое значение.

Обратите внимание на следующие моменты при работе с синтаксисом set:

Сеттер может быть удалён оператором delete.

Примеры Определение сеттера при инициализации новых объектов

Это позволит определить псевдо-параметр current объекта o, который задаёт значение, обновляющее значение log:

var o = {
  set current(str) {
    this.log[this.log.length] = str;
  },
  log: [],
};

обратите внимание, что current не определён и любые попытки доступа к нему вернут undefined.

Удаление сеттера оператором delete

Если вы хотите удалить сеттер, вы можете просто его удалить:

Определение сеттера для существующих объектов используя defineProperty

Чтобы добавить сеттер на существующий объект в любое время, используйте Object.defineProperty().

var o = { a: 0 };

Object.defineProperty(o, "b", {
  set: function (x) {
    this.a = x / 2;
  },
});

o.b = 10; // Запускает сеттер, который присваивает 10 / 2 (5) свойству 'a'
console.log(o.a); // 5
Использование вычисляемого имени свойства
var expr = "foo";

var obj = {
  baz: "bar",
  set [expr](v) {
    this.baz = v;
  },
};

console.log(obj.baz); // "bar"
obj.foo = "baz"; // запускает сеттер
console.log(obj.baz); // "baz"
Спецификации Совместимость с браузерами Смотрите также

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4