var object = {}; object.constructor.prototype.length = 0; isArray(object); // true
Если уж извращаться по полной то так: var is_array = function(value) { var __object__ = Object.prototype; return value && typeof(value) === 'object' && value instanceof Array && !__object__.propertyIsEnumerable.call(value, 'length') && __object__.hasOwnProperty.call(value, 'length'); };
Слишком уж косвенно получается:
ОтветитьУдалитьvar object = {};
object.constructor.prototype.length = 0;
isArray(object); // true
Если уж извращаться по полной то так:
var is_array = function(value) {
var __object__ = Object.prototype;
return value && typeof(value) === 'object' && value instanceof Array && !__object__.propertyIsEnumerable.call(value, 'length') && __object__.hasOwnProperty.call(value, 'length');
};
:)
Для многих задач подходит такой способ, особенно там где критична каждая лишняя проверка проверка.
ОтветитьУдалить