Вопрос

У меня есть прототип модели, где мне нужно включить в прототип следующие методы расширения:

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

Пример:[ДЖС]

sample = function() {
    this.i;
}

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

В модели прототипа, как я могу использовать методы расширения или любой другой способ для создания методов расширения в модели прототипа JS.

Это было полезно?

Решение

Вызов нового метода в строке:

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;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top