Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.07.2014, 15:16
Профессор
Посмотреть профиль Найти все сообщения от newobject
 
Регистрация: 10.07.2014
Сообщений: 145

проверка типов
Чет я тут подумал, проверку типов в js можно делать гораздо проще, чем это обычно делается, например, через тайпов и пр. Можно делать вот так например:

String.prototype.str=true
types={
str: "foo",
arr: [],
ob: {},
fu: function(){},
__proto__: null
}

for(i in types){
	console.log(i+": "+types[i].str)
}

tst=function(arg){
	if(arg.str) return eval(arg); return arg()
}

tst("console.log('foo')")
tst(function(){console.log("bar")})


//str: true
//arr: undefined
//ob: undefined
//fu: undefined
//foo
//bar
Ответить с цитированием
  #2 (permalink)  
Старый 18.07.2014, 15:25
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

я вот сижу пытаюсь вникнуть, что этот код делает, не получается))
Ответить с цитированием
  #3 (permalink)  
Старый 18.07.2014, 15:30
Профессор
Посмотреть профиль Найти все сообщения от newobject
 
Регистрация: 10.07.2014
Сообщений: 145

Сообщение от skrudjmakdak
я вот сижу пытаюсь вникнуть, что этот код делает, не получается))
Ну, сначала мы расширяем прототип String, затем, определил объект для проверки, с разными типами. При итерации этого объекта, выводится типа тип -- если объект имеет свойство, str -- возврат тру. А последние 2 вызова ф-ии -- это пример использования.

Последний раз редактировалось newobject, 18.07.2014 в 15:32.
Ответить с цитированием
  #4 (permalink)  
Старый 18.07.2014, 15:40
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

для того чтобы узнать тип переменной, то достаточно написать:
console.log(typeof "my string");

я вашу логику не пойму. где это пригодится
Ответить с цитированием
  #5 (permalink)  
Старый 18.07.2014, 15:42
Профессор
Посмотреть профиль Найти все сообщения от newobject
 
Регистрация: 10.07.2014
Сообщений: 145

ну, к примеру для массивов, также свои типы можно определять, да и вообще, так изящней, и соответствует духу js
Ответить с цитированием
  #6 (permalink)  
Старый 18.07.2014, 15:47
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

я твое изящество никак не могу вкусить
может более подробнее развернешь?? так сказать по больше примеров?
Ответить с цитированием
  #7 (permalink)  
Старый 18.07.2014, 15:48
Профессор
Посмотреть профиль Найти все сообщения от newobject
 
Регистрация: 10.07.2014
Сообщений: 145

skrudjmakdak,
Или можно смешанные типы, например, вместо function(arg){if(typeof arg==="foo"||typeof arg==="bar"){dostuff}}, function(arg){if(arg.foo) dostuff}
Ответить с цитированием
  #8 (permalink)  
Старый 18.07.2014, 15:59
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

newobject, ты случайно не троль? а? земля должна стать квадратной чтобы это typeof arg==="foo" выполнилось
Ответить с цитированием
  #9 (permalink)  
Старый 18.07.2014, 16:02
Профессор
Посмотреть профиль Найти все сообщения от newobject
 
Регистрация: 10.07.2014
Сообщений: 145

skrudjmakdak,
ес-нно там напр "string". Ты на мелочи отвлекаешься, масштабней надо смотреть
Ответить с цитированием
  #10 (permalink)  
Старый 18.07.2014, 16:05
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

Сообщение от newobject Посмотреть сообщение
Ты на мелочи отвлекаешься
это далеко не мелочи
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка встроенной поддержки типа с помощью библиотеки Modernizr viy.li Общие вопросы Javascript 1 16.08.2013 12:02
проверка формы не работает в ie begelme Javascript под браузер 6 13.08.2013 01:00
Проверка встроенной поддержки типа с помощью библиотеки Modernizr viy.li Библиотеки/Тулкиты/Фреймворки 3 15.06.2013 15:48
Проверка сайта AndreyS AJAX и COMET 5 28.07.2011 20:45
Проверка данных формы составным условием? myafa Элементы интерфейса 8 01.04.2011 08:30