Pergunta

Eu tenho um modelo protótipo onde eu preciso incluir os seguintes métodos de extensão no protótipo:

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

Exemplo: [JS]

sample = function() {
    this.i;
}

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

No modelo de protótipo, como posso usar os métodos de extensão ou qualquer outra forma de criar métodos de extensão em modelo de protótipo JS.

Foi útil?

Solução

Chamando o novo método de string:

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

deve ser tão simples como:

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

Para seu segundo exemplo, eu suponho que você quer um construtor que define a variável membro "i":

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

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

Você pode usar isso como segue:

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

Outras dicas

As funções do construtor deve começar com uma letra maiúscula embora.

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

var s = new Sample(42);

Não sei como corrigir isso é, mas por favor, tente este código. Ele trabalhou no IE para mim.

Adicionar no arquivo JavaScript:

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

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

        returnValue = true;
    }

    return returnValue;
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top