В JS чаще всего утиная типизация используется. Грубо говоря, если вам нужно сделать splice, то просто проверяется наличие splice, иначе ошибка-не поддерживается. А является ли он при этом array или чем-то другим-неважно.
а typeof даже встроенные объекты типа date не различает.

Код:
if(obj.splice){
// я массив или что-то похожее, я умею делать splice
}else{
// неведома зверюшка.
}
Цитата:
Утиная типизация основана на одной известной пословице: «If it looks like a duck, swims like a duck and quacks like a duck, then it probably is a duck (who cares what it really is)».
В переводе: «Если это выглядит как утка, плавает как утка и крякает как утка, то, вероятно, это утка (какая разница, что это на самом деле)».
|