在console.log中调用时,jQuery实例如何显示为数组?

Nud*_*oll 2 javascript console jquery javascript-objects

当进入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
Run Code Online (Sandbox Code Playgroud)

怎么可以用自己的对象复制它?

---------编辑---------

感谢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
Run Code Online (Sandbox Code Playgroud)

很酷.

ZER*_*ER0 6

我相信他们有类似的东西:

// Adding items to an object like an Array:
var myObject = {splice : Array.prototype.splice};

Array.prototype.push.call(myObject, 1, 10, "foo");

// Getting items from an object like an Array:

alert(Array.prototype.slice.call(myObject, 0));

console.log(myObject);

alert(myObject);
Run Code Online (Sandbox Code Playgroud)