vanilla.js.....
действительно очень легкий и мощный фреймворк!:D
http://s2.ipicture.ru/uploads/20131217/WLxmC3WP.png http://s2.ipicture.ru/uploads/20131217/doHYgPjn.png господа, wtf? Вот суки, меня обманули... негодяи)) |
Даша следопыт
|
Раз уж тема пустует, воспользуюсь случаем и задам вопрос: плохо ли так делать и если да, то почему?
/** * NULL IS NEW GLOBAL OBJECT */ this.Null = { /** * Returns "true" if a value is null * @param {*} v A value * @returns {Boolean} */ isNull: function(v) { return v === null; } }; /** * UNDEFINED IS NEW GLOBAL OBJECT */ this.Undefined = { /** * Returns "true" if a value is undefined * @param {*} v A value * @returns {Boolean} */ isUndefined: function(v) { return v === undefined; }, /** * Returns "true" if a value is defined * @param {*} v A value * @returns {Boolean} */ isDefined: function(v) { return v !== undefined; } }; |
Я просто в глобал спейс добавляю функции вида: isUndef и isNull
|
Цитата:
А это почти копипаст: isUndefined: function(v) { return v === undefined; }, isDefined: function(v) { return v !== undefined; Я обычно пилю так function is(type, variable) { return variable === type } is(undefined, 10); Ну или как kobezzza тоже |
Цитата:
Цитата:
Constructor.IsConstructor(variable); или Type.IsType(variable); и не хочется ее нарушать. Но null & undefined примитивы и не имеют конструкторов. Вместе с тем Number имеет... Пока в раздумьях :) Вот так получается https://github.com/nervgh/yum.js/blob/master/src/yum.js Это "isDefined", конечно, надо убирать, а то взрыв мозга :D ... или сделать как сказал кобеза и добавить в глобал три функции Цитата:
|
nerv_,
function is(str, obj) { var type = {}.toString.call(obj).toLowerCase(); type = type.slice(7); return type.indexOf(str.toLowerCase()) != -1 && !(obj !== obj); } console.log(is("array", [])); console.log(is("number", 3)); console.log(is("number", "3")); console.log(is("object", undefined)); При желание можно сократить) Date.isDate = function(v) { return is("Date", v); }; |
cyber, посмотри, сколько у тебя операций, и сколько у меня https://github.com/nervgh/yum.js/blo...rc/yum.js#L210 Как думаешь, есть разница в скорости? :) Кроме того, так я проверяю только объекты https://github.com/nervgh/yum.js/blo...rc/yum.js#L165 , кот. не определяются через typeof
|
В большинстве случаев проверка типа объекта решается пересмотром архитектуры.
Может когда-нибудь TC-39 решат добавить перегрузку функций ;) |
Цитата:
|
Часовой пояс GMT +3, время: 09:09. |