Я должен изменить прототип Строки?

Если Вы работаете в ASP.NET, должен сравнить значения между двумя объектами CalendarExtender, способ, которым Вы сравниваете даты, немного отличается, но все еще очень идентичен.

if(calStartDate.SelectedDate > calEndDate.SelectedDate) {
 MessageBox.ShowMessage("That's not how time works.");
}

, Где calStartDate и calEndDate установлены как идентификаторы для Вашего CalendarExtenders.

6
задан Rakesh Juyal 9 November 2009 в 11:18
поделиться

3 ответа

Функции trim должны быть стандартизированы в ECMAScript Fifth Edition, а также уже присутствуют в некоторых браузерах. Итак:

  1. Да, добавление их в прототип вполне уместно, но

  2. Вы не должны добавлять их в прототип, если они уже есть, так как вы просто замените быструю функцию в собственном коде на медленный JavaScript.

Также обычно немного быстрее выполнить обрезку как две замены:

// Add ECMA262-5 string trim if not supported natively
//
if (!('trim' in String.prototype)) {
    String.prototype.trim= function() {
        return this.replace(/^\s+/, '').replace(/\s+$/, '');
    };
}
7
ответ дан 10 December 2019 в 00:40
поделиться

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

И всегда проверяйте, прежде чем добавлять:

//pre-1.6 javascript
if (!Array.prototype.indexOf) {
    Array.prototype.indexOf = function(elt) {
        var len = this.length >>> 0;
        var from = Number(arguments[1]) || 0;
        from = (from < 0) ? Math.ceil(from) : Math.floor(from);
        if (from < 0)
            from += len;
        for (; from < len; from++) {
            if (from in this && this[from] === elt)
                return from;
        }
        return -1;
    };
}

Таким образом вы не перезаписываете намного более быструю функцию сборки, которая может стать доступной когда-нибудь ...

2
ответ дан 10 December 2019 в 00:40
поделиться

Я бы сказал, что для такого рода очень полезной служебной функции вы можете изменить прототип. Но вы должны знать, что функция может уже существовать изначально в нескольких браузерах, поэтому вам следует проверить ее: https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Objects/String

1
ответ дан 10 December 2019 в 00:40
поделиться
Другие вопросы по тегам:

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