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, время: 10:58. |