Метод расширения прототипа Javascript
у меня есть прототип модели, где мне нужно включить следующие методы расширения в прототип:
String.prototype.startsWith = function(str){
return (this.indexOf(str) === 0);
}
пример: [JS]
sample = function() {
this.i;
}
sample.prototype = {
get_data: function() {
return this.i;
}
}
в модели прототипа, как я могу использовать методы расширения или любой другой способ создания методов расширения в модели прототипа JS.
3 ответов
вызов нового метода в строке:
String.prototype.startsWith = function(str){
return (this.indexOf(str) === 0);
}
должно быть так:
alert("foobar".startsWith("foo")); //alerts true
для вашего второго примера я предполагаю, что вам нужен конструктор, который устанавливает переменную-член "i":
function sample(i) {
this.i = i;
}
sample.prototype.get_data = function() { return this.i; }
вы можете использовать это следующим образом:
var s = new sample(42);
alert(s.get_data()); //alerts 42
функции конструктора должны начинаться с заглавной буквы.
function Sample(i) {
this.i = i;
}
var s = new Sample(42);
Не уверен, насколько это правильно, но попробуйте этот код. Это сработало в IE для меня.
добавить в файл JavaScript:
String.prototype.includes = function (str) {
var returnValue = false;
if(this.indexOf(str) != -1){
returnValue = true;
}
return returnValue;
}