为什么Array.prototype不是Array的实例?

时间:2015-02-15 16:51:52

标签: javascript jquery

我写了自己的isArray函数:

Array.isArray = function(value) {
  if (value instanceof Array) {
    console.log(true);
    return true;
  } else {
    console.log(false);
    return false;
  }
};

var isArray = Array.isArray;

isArray('String'); // false
isArray(202929); // false
isArray(true); // false
isArray(false); // false
isArray({}); // false
isArray(Array.prototype); // false, but must be true
isArray([]); // true

为什么Array.prototype不是Array的实例,因为Array.prototype会返回[]

> Array.prototype
[]
> Array.prototype instanceof Array
false

1 个答案:

答案 0 :(得分:0)

这是实施isArray的正确方法:

  Array.isArray = function(arg) {
    return Object.prototype.toString.call(arg) === '[object Array]';
  };

了解更多here