From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- .../obiekty/object/hasownproperty/index.html | 150 +++++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 files/pl/web/javascript/referencje/obiekty/object/hasownproperty/index.html (limited to 'files/pl/web/javascript/referencje/obiekty/object/hasownproperty') diff --git a/files/pl/web/javascript/referencje/obiekty/object/hasownproperty/index.html b/files/pl/web/javascript/referencje/obiekty/object/hasownproperty/index.html new file mode 100644 index 0000000000..42bb16783b --- /dev/null +++ b/files/pl/web/javascript/referencje/obiekty/object/hasownproperty/index.html @@ -0,0 +1,150 @@ +--- +title: Object.prototype.hasOwnProperty() +slug: Web/JavaScript/Referencje/Obiekty/Object/hasOwnProperty +translation_of: Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty +--- +
{{JSRef("Global_Objects", "Object")}}
+ +

Wstęp

+ +

Metoda hasOwnProperty() zwraca wartość true jeśli obiekt, na którym została wywołana posiada konkretną własność.

+ +

Składnia

+ +
obj.hasOwnProperty(prop)
+ +

Parametry

+ +
+
prop
+
Nazwa ({{jsxref("String")}}) własności lub Symbol, do sprawdzenia.
+
+ +

Wartość zwracana

+ +

A {{jsxref ("Boolean")}} wskazujący, czy obiekt zawiera w sobie określoną właściwość.

+ +

Opis

+ +

Każdy obiekt pochodzący od {{jsxref("Global_Objects/Object", "Object")}} dziedziczy metodę hasOwnProperty. Może być ona użyta do stwierdzenia czy obiekt posiada określoną własność, jako bezpośrednią (direct) własność. W przeciwieństwie do  operatora {{jsxref("Operators/in", "in")}}, metoda hasOwnProperty nie sprawdza w głąb łańcucha własności obiektu.

+ +

Notatka

+ +

hasOwnProperty zwraca true, nawet jeśli wartość właściwości to null lub undefined.

+ +
o = new Object();
+o.propOne = null;
+o.hasOwnProperty('propOne');   // zwraca true
+o.propTwo = undefined;
+o.hasOwnProperty('propTwo');   // zwraca true
+
+ +

Przykłady

+ +

Użycie hasOwnProperty do testowania istnienia własności

+ +

Poniższy przykład określa czy obiekt o posiada własność o nazwie prop:

+ +
o = new Object();
+o.hasOwnProperty('prop');   // zwraca false
+o.prop = 'istnieje';
+o.hasOwnProperty('prop');   // zwraca true
+ +

Własności bezpośrednie kontra odziedziczone

+ +

Poniższy przykład rozróżnia bezpośrednie właściwości z właściwościami dziedziczonymi w łańcuchu prototypów:

+ +
o = new Object();
+o.prop = 'istnieje';
+o.hasOwnProperty('prop');             // zwraca true
+o.hasOwnProperty('toString');         // zwraca false
+o.hasOwnProperty('hasOwnProperty');   // zwraca false
+
+ +

Iterowanie przez właściwości obiektu

+ +

Poniższy przykład ilustruje sposób iteracji po właściwościach obiektu bez wykonywania iteracji na dziedziczonych właściwościach.

+ +
const obj = {
+  prop: 'Wartość',
+  secondProp: 'Wartość 2'
+}
+
+for (const name in obj) {
+  if (obj.hasOwnProperty(name)) {
+    console.log('Znaleziono własność ' + name + ' o wartości ' + obj[name])
+  } else {
+    console.log('Brak własności: ', name)
+  }
+}
+ +
+

Zwróć uwagę, że pętla {{jsxref("Statements/for...in", "for...in")}} tylko iteruje właściwości przeliczalne, a nieprzeliczanych nie zauważa.

+
+ +

Używanie hasOwnProperty jako nazwy właściwości

+ +

JavaScript nie chroni nazwy właściwości hasOwnProperty; tak więc, jeśli istnieje możliwość, że obiekt może mieć właściwość o tej nazwie, konieczne jest użycie zewnętrznej właściwości hasOwnProperty, aby uzyskać poprawne wyniki:

+ +
const obj = {
+  hasOwnProperty: function() {
+    return false;
+  },
+  prop: 'Kolejna właściwość'
+};
+
+obj.hasOwnProperty('prop'); // zawsze zwróci false
+
+// Użyj właściwości hasOwnProperty innego obiektu i wywołaj ją, ustawiając "this" na obj
+({}).hasOwnProperty.call(obj, 'prop'); // zwraca true
+
+// W tym celu można również użyć własności hasOwnProperty z prototypu Object
+Object.prototype.hasOwnProperty.call(obj, 'prop'); // zwraca true
+
+ +

Zwróć uwagę, że w ostatnim przypadku nie ma żadnych nowo utworzonych obiektów.

+ +

Specyfikacja

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
ECMAScript 3rd Edition.StandardInitial definition. Implemented in JavaScript 1.5.
{{SpecName('ES5.1', '#sec-15.2.4.5', 'Object.prototype.hasOwnProperty')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-object.prototype.hasownproperty', 'Object.prototype.hasOwnProperty')}}{{Spec2('ES6')}}
+ +

Wsparcie przeglądarek

+ + + +
{{Compat("javascript.builtins.Object.hasOwnProperty")}}
+ +

Zobacz także

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