From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- .../javascript/reference/functions/set/index.html | 146 +++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 files/pl/web/javascript/reference/functions/set/index.html (limited to 'files/pl/web/javascript/reference/functions/set') diff --git a/files/pl/web/javascript/reference/functions/set/index.html b/files/pl/web/javascript/reference/functions/set/index.html new file mode 100644 index 0000000000..d3eb6ad31d --- /dev/null +++ b/files/pl/web/javascript/reference/functions/set/index.html @@ -0,0 +1,146 @@ +--- +title: setter +slug: Web/JavaScript/Reference/Functions/set +translation_of: Web/JavaScript/Reference/Functions/set +--- +
{{jsSidebar("Functions")}}
+ +

Składnia set wiąże właściwość obiektu z funkcją, która zostanie wywołana przy próbie przypisania wartości danej właściwości.

+ +
{{EmbedInteractiveExample("pages/js/functions-setter.html")}}
+ + + +

Składnia

+ +
{set prop(val) { . . . }}
+{set [expression](val) { . . . }}
+ +

Parametry

+ +
+
prop
+
Nazwa właściwości wiązanej z określoną funkcją.
+
+ +
+
val
+
Zmienna przechowująca wartość przekazaną do przypisania do właściwości prop.
+
expression
+
Począwszy od ECMAScript 2015, można również użyć wyrażeń w celu połaczenia funkcji z nazwą właściwości, która jest obliczana.
+
+ +

Description

+ +

Setter może być użyty do wywołania określonej funkcji przy każdej próbie przypisania wartości do danej właściwości. Settery są najczęściej używane razem z getterami żeby utworzyć rodzaj pseudo-właściwości. Nie ma możliwości jednoczesnego używania settera oraz faktycznej wartości przypisanej do danej właściwości.

+ +

Uwagi do składni set:

+ +
+ +
+ +

Setter może być usunięty przy użyciu operatora delete.

+ +

Przykłady

+ +

Definicja settera w nowym obiekcie podczas inicjalizacji

+ +

Poniższa składnia definiuje pseudo-właściwość current obiektu language, która podczas przypisania wartości aktualizuje tablicę log o tą wartość:

+ +
var language = {
+  set current(name) {
+    this.log.push(name);
+  },
+  log: []
+}
+
+language.current = 'EN';
+console.log(language.log); // ['EN']
+
+language.current = 'FA';
+console.log(language.log); // ['EN', 'FA']
+
+ +

Zwróć uwagę, że właściwość current nie jest zdefiniowana i próby odczytu zwrócą undefined.

+ +

Usuwanie settera przy użyciu operatora delete

+ +

Setter może zostać usunięty przy użyciu delete:

+ +
delete o.current;
+
+ +

Definicja settera dla istniejącego obiektu przy użyciu defineProperty

+ +

Aby zdefiniować setter dla istniejącego obiektu po jego uprzednim utworzeniu użyj {{jsxref("Object.defineProperty()")}}.

+ +
var o = {a: 0};
+
+Object.defineProperty(o, 'b', { set: function(x) { this.a = x / 2; } });
+
+o.b = 10; // Uruchamia setter, który przypisuje 10 / 2 (5) do właściwości 'a'
+console.log(o.a) // 5
+ +

Używanie wyrażenia do obliczenia nazwy settera

+ +
var expr = 'foo';
+
+var obj = {
+  baz: 'bar',
+  set [expr](v) { this.baz = v; }
+};
+
+console.log(obj.baz); // "bar"
+obj.foo = 'baz';      // uruchom setter
+console.log(obj.baz); // "baz"
+
+ +

Specyfikacje

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES5.1', '#sec-11.1.5', 'Object Initializer')}}{{Spec2('ES5.1')}}Initial definition.
{{SpecName('ES6', '#sec-method-definitions', 'Method definitions')}}{{Spec2('ES6')}}Added computed property names.
{{SpecName('ESDraft', '#sec-method-definitions', 'Method definitions')}}{{Spec2('ESDraft')}} 
+ +

Zgodność z przeglądarkami

+ + + +

{{Compat("javascript.functions.set")}}

+ +

Zobacz również

+ + -- cgit v1.2.3-54-g00ecf