Metodo di estensione prototipo Javascript
-
05-07-2019 - |
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.
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