Существует ли библиотека JavaScript, которая содержит богатый набор наиболее часто используемых функций очень высокого уровня?

Я нахожу, что много функций высокого уровня отсутствуют в большинстве известных библиотек JavaScript, таких как jQuery, YUI... и т.д. Беря обработку строк в качестве примера, startsWith, endsWith, содержит, lTrim, rTrim, обрезка, isNullOrEmpty... и т.д. Они функционируют, на самом деле очень общие.

Я хотел бы знать, существует ли там библиотека JavaScript / плагин библиотеки JavaScript, которая заполняет эти разрывы (включая, но не ограничиваясь, обработкой строк)?

Было бы замечательно, если библиотека не переопределяет прототип.

7
задан bobo 18 April 2010 в 05:45
поделиться

4 ответа

Взгляните на underscore.js (к сожалению, никаких манипуляций со строками, но множество других полезных вещей).

9
ответ дан 6 December 2019 в 12:47
поделиться

Большинство этих строковых функций доступны с использованием других методов, связанных со строковым объектом, например

var myString = 'hello world';

myString.indexOf('hello') == 0; //same as startsWith('hello');

Вы можете обернуть эти функции в другие функции, если хотите. Я думаю, что добавление прототипов к строковому объекту было бы подходящим вариантом, и любые библиотеки, которые вы найдете, вероятно, все равно пойдут по этому пути.

3
ответ дан 6 December 2019 в 12:47
поделиться

Библиотека ms ajax core содержит все эти строковые методы, а также методы даты и т. Д., По сути, это отважная попытка перенести .net на js.

Вам не нужно загружать весь стек MS Ajax js, только файл ядра.

2
ответ дан 6 December 2019 в 12:47
поделиться

Все это легко реализовать с помощью оберток, если вы не хотите расширять прототип.

var StringWrapper = (function(){
    var wrapper = {
        string: null,
        trim: function(){
            return this.string.replace(/^\s+|\s+$/g, "");
        },
        lTrim: function(){

        }
    };

    return function(string){
        wrapper.string = string;
        return wrapper;
    };
})();

StringWrapper("   aaaa bbbb    ").trim(); /// "aaaa bbbb"

Функции создаются только один раз, поэтому это довольно эффективно. Но использование оболочки над вспомогательным объектом влечет за собой один дополнительный вызов функции.

1
ответ дан 6 December 2019 в 12:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: