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: 0
    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-2025 v.1.5 | design: diviXdesign & rainbowcolors