17.12.2013, 19:43
|
Профессор
|
|
Регистрация: 14.03.2012
Сообщений: 1,808
|
|
vanilla.js.....
__________________
Научу себя плохому
Последний раз редактировалось l-liava-l, 17.12.2013 в 19:54.
|
|
17.12.2013, 19:54
|
Кандидат Javascript-наук
|
|
Регистрация: 14.12.2013
Сообщений: 129
|
|
Даша следопыт
|
|
19.12.2013, 22:31
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Раз уж тема пустует, воспользуюсь случаем и задам вопрос: плохо ли так делать и если да, то почему?
/**
* 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;
}
};
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
20.12.2013, 00:10
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Я просто в глобал спейс добавляю функции вида: isUndef и isNull
|
|
20.12.2013, 00:49
|
Профессор
|
|
Регистрация: 14.03.2012
Сообщений: 1,808
|
|
Цитата:
|
Раз уж тема пустует, воспользуюсь случаем и задам вопрос: плохо ли так делать и если да, то почему?
|
Я бы не стал так писать не очень очевидно(мне) + много когда
А это почти копипаст:
isUndefined: function(v) {
return v === undefined;
},
isDefined: function(v) {
return v !== undefined;
Я обычно пилю так
function is(type, variable) {
return variable === type
}
is(undefined, 10);
Ну или как kobezzza тоже
__________________
Научу себя плохому
|
|
20.12.2013, 01:09
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Сообщение от l-liava-l
|
Я обычно пилю так
|
массивы как проверять будешь?
Сообщение от kobezzza
|
Я просто в глобал спейс добавляю функции вида: isUndef и isNull
|
разумно. С другой стороны есть логика вида
Constructor.IsConstructor(variable);
или
Type.IsType(variable);
и не хочется ее нарушать. Но null & undefined примитивы и не имеют конструкторов. Вместе с тем Number имеет...
Пока в раздумьях
Вот так получается https://github.com/nervgh/yum.js/blob/master/src/yum.js
Это "isDefined", конечно, надо убирать, а то взрыв мозга
... или сделать как сказал кобеза и добавить в глобал три функции
Сообщение от l-liava-l
|
А это почти копипаст
|
и что из этого?
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Последний раз редактировалось nerv_, 20.12.2013 в 01:15.
|
|
20.12.2013, 01:58
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
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);
};
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
20.12.2013, 02:50
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
В большинстве случаев проверка типа объекта решается пересмотром архитектуры.
Может когда-нибудь TC-39 решат добавить перегрузку функций
Последний раз редактировалось monolithed, 20.12.2013 в 03:02.
|
|
20.12.2013, 03:00
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Сообщение от nerv_
|
Как думаешь, есть разница в скорости?
|
не буду отвечать на реторический вопрос)
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
|
|