2009-09-11 11 views
6

Mam modelu prototyp, gdzie muszą zawierać następujące metody zewnętrzny do prototypu:JavaScript przedłużenie prototyp sposób

String.prototype.startsWith = function(str){ 
    return (this.indexOf(str) === 0); 
} 

przykład: [JS]

sample = function() { 
    this.i; 
} 

sample.prototype = { 
    get_data: function() { 
     return this.i; 
    } 
} 

w modelu prototypu jak mogę użyć metod rozszerzeń lub w inny sposób do tworzenia metod rozszerzeń w modelu prototypowym JS.

Odpowiedz

13

Wywołanie nowego sposobu na wyrażenie:

String.prototype.startsWith = function(str){ 
    return (this.indexOf(str) === 0); 
} 

powinno być tak proste, jak:

alert("foobar".startsWith("foo")); //alerts true 

Na swoim drugim przykładzie zakładam chcesz konstruktora, który ustawia zmienną składową „i” :

function sample(i) { 
    this.i = i;  
} 

sample.prototype.get_data = function() { return this.i; } 

można to wykorzystać w następujący sposób:

var s = new sample(42); 
alert(s.get_data()); //alerts 42 
+0

muszę dodać tha Methos startswith wewnątrz prototypu próbki .. hw zrobić tat ... – Santhosh

+3

Niestety, nie bardzo rozumiem, co chcesz wtedy –

+0

nie prob thnk 4r ur help .. – Santhosh

1

Funkcje konstruktora powinny rozpoczynać się wielką literą.

function Sample(i) { 
    this.i = i;  
} 

var s = new Sample(42); 
0

Nie jestem pewien, czy to prawda, ale spróbuj tego kodu. W moim przypadku zadziałało to w IE.

Dodaj w pliku JavaScript:

String.prototype.includes = function (str) { 
    var returnValue = false; 

    if(this.indexOf(str) != -1){ 

     returnValue = true; 
    } 

    return returnValue; 
}