Domanda

Ho un modello prototipo in cui devo includere i seguenti metodi di estensione nel prototipo:

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

Esempio: [JS]

sample = function() {
    this.i;
}

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

Nel modello prototipo, come posso utilizzare i metodi di estensione o in qualsiasi altro modo per creare metodi di estensione nel modello prototipo JS.

È stato utile?

Soluzione

Chiamando il nuovo metodo su stringa:

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

dovrebbe essere semplice come:

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

Per il tuo secondo esempio, suppongo che tu voglia un costruttore che imposta la variabile membro " i " ;:

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

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

Puoi usarlo come segue:

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

Altri suggerimenti

Le funzioni del costruttore dovrebbero iniziare con una lettera maiuscola.

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

var s = new Sample(42);

Non sono sicuro di quanto sia corretto, ma prova questo codice. Ha funzionato in IE per me.

Aggiungi nel file JavaScript:

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

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

        returnValue = true;
    }

    return returnValue;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top