Loading:


JavaScript Funkcja prototype (Własność obiektu: Function)

Wartość instancji od której są tworzone poszczególne klasy. Każdy obiekt, który może zostać utworzony poprzez wywołanie konstruktora funkcji posiada wspólną własność prototypu funkcji.

Własność obiektu: Function

Opis



Możesz dodawać nową własność lub metodę do istniejących klas poprzez dodanie im prototypu funkcji powiązanego z konstruktorem funkcji dla tych klas. Składnia dla dodawania nowej własności lub metody jest następująca:


fun.prototype.name = value


gdzie


fun - Nazwa obiektu konstruktora funkcji który chcesz zmieniać.



name - Nazwa tworzonej własności lub metody.



value -Wartość wstępnie przypisana do nowej własności lub metody.



 

Jeśli dodasz właściwość do prototype dla objektu, wszystkie objekty utworzone z tym konstruktorem objektu funkcji będą mieć nowe właściwości, nawet jeśli objekt istnieje przed tym kiedy utworzyłeś nową właściwość.


Na przykład, załóżmy że masz poniższy przykład:


var array1 = new Array();
var array2 = new Array(3);
Array.prototype.description=null;
array1.description="Contains some stuff"
array2.description="Contains other stuff"




Zanim ustawisz właściwości dla prototype, wszystkie kolejne objekty utworzone w Array będą mieć właściwości:


anotherArray=new Array()
anotherArray.description="Currently empty"

Note that prototype is itself an object, and can be assigned properties and methods via the object literal syntax:

function MyFunction() {
   alert("Created.");
}

MyFunction.prototype = {
   alert1: function(str) {
      alert(str);
   },

   five: 5,

   alert2: function() {
      alert("Hi.");
   }
};
var myObject = new MyFunction();
myObject.alert1("There.");
myObject.five;
myObject.alert2();




 

Przykłady



Poniższy przykład tworzy metode str_rep i i używa oświadczenia String.prototype.rep = str_rep do dodania metody do wszystkich String objektu. Wszystkie objekty utworzone w new String() będą mieć tą metodę, nawet jeśli objekt już został utworzony.Przykład tworzy alternatywną metodę i dodaje jedną z String objektu używając statement s1.rep = fake_rep.

pozostałe metody str_rep objektu String pozostają bez zmian

var s1 = new String("a")

var s2 = new String("b")

var s3 = new String("c")



// Create a repeat-string-N-times method for all String objects

function str_rep(n) {

   var s = "", t = this.toString()

   while (--n >= 0) s += t

   return s

}



String.prototype.rep = str_rep



s1a=s1.rep(3) // zwraca "aaa"

s2a=s2.rep(5) // zwraca "bbbbb"

s3a=s3.rep(2) // zwraca "cc"



// Create an alternate method and assign it to only one String variable

function fake_rep(n) {

   return "repeat " + this + " " + n + " times."

}



s1.rep = fake_rep

s1b=s1.rep(1) // zwraca "repeat a 1 times."

s2b=s2.rep(4) // zwraca "bbbb"

s3b=s3.rep(6) // zwraca "cccccc"


Funkcja w tym przykładzie działa również na objekcie String nie utworzonym z konstruktorem String. Poniższy kod zwróci "zzz"

"z".rep(3)

 



Napisz Artyku³

Listing

niema




Dodano przez: igor
Ranga: Administrator serwisu Punktów: 28716
Komentarze użytkowników
    • Tre¶æ komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2024 v.1.5 | design: diviXdesign & rainbowcolors