Object.prototype

Object.prototype reprezentuje prototyp obiekt贸w klasy Object.

Podsumowanie

Wszystkie obiekty w j臋zyku JavaScript wywodz膮 si臋 od Object; wszystkie obiekty dziedzicz膮 metody i pola po Object.prototype, chocia偶 mog膮 one zosta膰 przeci膮偶one (z wyj膮tkiem Object'u o prototypie null, tj. Object.create(null)). Na przyk艂ad, prototypy innych konstruktor贸w przeci膮偶aj膮 pole constructor i zapewniaj膮 swoje w艂asne wersje metod toString(). Zmiany do prototypu Object propagowane s膮 do wszystkich obiekt贸w, chyba 偶e dane metody i pola zosta艂y przeci膮偶one w prototypie kt贸rej艣 z klas bazowych.

W艂asno艣ci

Object.prototype.constructor
Okre艣la konstruktor obiektu - funkcj臋, kt贸ra tworzy prototyp obiektu.
Object.prototype.__proto__ (en-US) This API has not been standardized.
Wskazuje na obiekt kt贸ry by艂 u偶yty jako prototyp, kiedy dany obiekt by艂 inicjalizowany.
Object.prototype.__noSuchMethod__ This API has not been standardized.
Pozwala zdefiniowa膰 funkcj臋, kt贸ra b臋dzie wykonana kiedy niezdefiniowany element obiektu zostanie wywo艂any jako metoda.
Object.prototype.__count__ This is an obsolete API and is no longer guaranteed to work.
W艂asno艣膰 zwraca艂a liczb臋 w艂a艣ciwo艣ci tzw. enumerable posiadanych przez zdefiniowany przez u偶ytkownika obiekt. W艂asno艣膰 ta zosta艂a usuni臋ta.
Object.prototype.__parent__ This is an obsolete API and is no longer guaranteed to work.
By艂a u偶ywana do wskazywania kontwkstu obiektu. W艂asno艣膰 ta zosta艂a usuni臋ta.

Metody

Object.prototype.__defineGetter__() (en-US) This API has not been standardized. This deprecated API should no longer be used, but will probably still work.
Przypisuje funkcj臋 do pola, do kt贸rego odwo艂anie wywo艂a t臋 funkcj臋, kt贸ra zwr贸ci odpowiedni膮 warto艣膰.
Object.prototype.__defineSetter__() (en-US) This API has not been standardized. This deprecated API should no longer be used, but will probably still work.
Przypisuje funkcj臋 do pola, kt贸rego ustawienie wywo艂a t臋 funkcj臋, kt贸ra zmodyfikuje warto艣膰 pola.
Object.prototype.__lookupGetter__() (en-US) This API has not been standardized. This deprecated API should no longer be used, but will probably still work.
Zwraca funkcj臋 powi膮zan膮 z danym polem poprzez metod臋 __defineGetter__ (en-US).
Object.prototype.__lookupSetter__() (en-US) This API has not been standardized. This deprecated API should no longer be used, but will probably still work.
Zwraca funkcj臋 powi膮zan膮 z danym polem poprzez metod臋 __defineSetter__ (en-US).
Object.prototype.hasOwnProperty()
Zwraca warto艣膰 boolean wskazuj膮c膮 czy obiekt posiada dane pole (wykluczaj膮c przypadki, gdy pole jest odziedziczone).
Object.prototype.isPrototypeOf() (en-US)
Zwraca warto艣膰 boolean wskazuj膮c膮 czy dany obiekt znajduje si臋 w 艂a艅cuchu prototyp贸w obiektu podanego jako parametr funkcji.
Object.prototype.propertyIsEnumerable() (en-US)
Zwraca warto艣膰 boolean wskazuj膮c膮 czy ustawiony jest atrybut ECMAScript DontEnum attribute.
Object.prototype.toSource() This API has not been standardized.
Zwraca litera艂 obiektowy reprezentuj膮cy dany obiekt; mo偶na go u偶y膰 do utworzenia nowego obiektu.
Object.prototype.toLocaleString()
Wywo艂uje toString().
Object.prototype.toString()
Zwraca 艂a艅cuch znak贸w reprezentuj膮cy dany obiekt.
Object.prototype.unwatch() This API has not been standardized.
Usuwa funkcj臋 monitoruj膮c膮 dan膮 w艂asno艣膰 obiektu.
Object.prototype.valueOf()
Zwraca warto艣膰 prost膮 danego obiektu.
Object.prototype.watch() This API has not been standardized.
Dodaje funkcj臋 monitoruj膮c膮 dan膮 w艂asno艣膰 obiektu.
Object.prototype.eval() This is an obsolete API and is no longer guaranteed to work.
Wykonuje kod JavaScriptu zawarty w 艂a艅cuchu znak贸w w kontek艣cie danego obiektu.

Przyk艂ady

Jako, i偶 JavaScript nie posiada typowego rozr贸偶nienia na klas臋 bazow膮 i dziedzicz膮c膮,  prototype jest przydatnym obej艣ciem pozwalaj膮cym na utworzenie 鈥渒lasy bazowej鈥 z pewnych funkcji, kt贸re dzia艂aj膮 jak obiekty. Na przyk艂ad:

var Osoba = function() {
  this.umieMowic = true;
};

Osoba.prototype.powitaj = function() {
  if (this.umieMowic) {
    console.log('Hej, jestem ' + this.imie);
  }
};

var Pracownik = function(imie, tytul) {
  Osoba.call(this);
  this.imie = imie;
  this.tytul = tytul;
};

Pracownik.prototype = Object.create(Osoba.prototype);
Pracownik.prototype.constructor = Pracownik;

Pracownik.prototype.powitaj = function() {
  if (this.umieMowic) {
    console.log('Hej, jestem ' + this.imie + ', ' + this.tytul);
  }
};

var Klient = function(imie) {
  Osoba.call(this);
  this.imie = imie;
};

Klient.prototype = Object.create(Osoba.prototype);
Klient.prototype.constructor = Klient;

var Mim = function(imie) {
  Osoba.call(this);
  this.imie = imie;
  this.umieMowic = false;
};

Mim.prototype = Object.create(Osoba.prototype);
Mim.prototype.constructor = Mim;

var bob = new Pracownik('Bob', 'Builder');
var joe = new Klient('Joe');
var rg = new Pracownik('Red Green', 'Handyman');
var mike = new Klient('Mike');
var mim = new Mim('Mim');

bob.powitaj();
// Hej, jestem Bob, Builder

joe.powitaj();
// Hej, jestem Joe

rg.powitaj();
// Hej, jestem Red Green, Handyman

mike.powitaj();
// Hej, jestem Mike

mim.powitaj();

Specyfikacje

Specyfikacja Status Komentarz
ECMAScript 1st Edition (ECMA-262) Standard Pocz膮tkowa definicja. Zaimplementowano w JavaScript 1.0.
ECMAScript 5.1 (ECMA-262)
The definition of 'Object.prototype' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Object.prototype' in that specification.
Standard  

Kompatybilno艣膰

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help! (en-US)
Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) (Yes) (Yes) (Yes)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

Zobacz te偶