При вводе в консоль JavaScript объект jQuery отображается как массив. Однако это по-прежнему экземпляр объекта jQuery.
var j = jQuery();
=> []
console.log(j);
=> []
console.log('test with string concat: ' + j);
=> test with string concat: [object Object]
j instanceof Array
=> false
j instanceof jQuery
=> true
Как можно дублировать это со своим собственным объектом?
--------- РЕДАКТИРОВАТЬ ---------
Спасибо ZER0 за то, что разобрались. Вот пример кода для создания объекта, который работает так же, как jQuery в консоли:
var Foo = function() {
this.splice = Array.prototype.splice;
Array.prototype.push.apply(this, arguments);
return this;
}
var f = new Foo();
=> []
console.log(f);
=> []
console.log('test with string concat: ' + f);
=> test with string concat: [object Object]
f instanceof Array
=> false
f instanceof Foo
=> true
Очень круто.
jQuery() instanceof Arrayвозвращает false). Однако я бы хотел, чтобы он отображался как массив в консоли. - person NudeCanalTroll   schedule 11.03.2012