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__
Wskazuje na obiekt kt贸ry by艂 u偶yty jako prototyp, kiedy dany obiekt by艂 inicjalizowany.
Object.prototype.__noSuchMethod__
Pozwala zdefiniowa膰 funkcj臋, kt贸ra b臋dzie wykonana kiedy niezdefiniowany element obiektu zostanie wywo艂any jako metoda.
Object.prototype.__count__
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__
By艂a u偶ywana do wskazywania kontwkstu obiektu. W艂asno艣膰 ta zosta艂a usuni臋ta.

Metody

Object.prototype.__defineGetter__()
Przypisuje funkcj臋 do pola, do kt贸rego odwo艂anie wywo艂a t臋 funkcj臋, kt贸ra zwr贸ci odpowiedni膮 warto艣膰.
Object.prototype.__defineSetter__()
Przypisuje funkcj臋 do pola, kt贸rego ustawienie wywo艂a t臋 funkcj臋, kt贸ra zmodyfikuje warto艣膰 pola.
Object.prototype.__lookupGetter__()
Zwraca funkcj臋 powi膮zan膮 z danym polem poprzez metod臋 __defineGetter__.
Object.prototype.__lookupSetter__()
Zwraca funkcj臋 powi膮zan膮 z danym polem poprzez metod臋 __defineSetter__.
Object.prototype.hasOwnProperty()
Zwraca warto艣膰 boolean wskazuj膮c膮 czy obiekt posiada dane pole (wykluczaj膮c przypadki, gdy pole jest odziedziczone).
Object.prototype.isPrototypeOf()
Zwraca warto艣膰 boolean wskazuj膮c膮 czy dany obiekt znajduje si臋 w 艂a艅cuchu prototyp贸w obiektu podanego jako parametr funkcji.
Object.prototype.propertyIsEnumerable()
Zwraca warto艣膰 boolean wskazuj膮c膮 czy ustawiony jest atrybut ECMAScript DontEnum attribute.
Object.prototype.toSource()
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()
Usuwa funkcj臋 monitoruj膮c膮 dan膮 w艂asno艣膰 obiektu.
Object.prototype.valueOf()
Zwraca warto艣膰 prost膮 danego obiektu.
Object.prototype.watch()
Dodaje funkcj臋 monitoruj膮c膮 dan膮 w艂asno艣膰 obiektu.
Object.prototype.eval()
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

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!
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偶