Javascript método de extensão protótipo
-
05-07-2019 - |
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.
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