如何重写本机isArray方法是一个难题

How to override native isArray method is nesessary?

本文关键字:一个 难题 重写本机 isArray 方法      更新时间:2023-09-26

我正在尝试覆盖本机isArray方法,如下所示:

function isArray (obj) {
    isArray = Array.isArray || function(obj) {
        return Object.prototype.toString.call(obj) == '[object Array]';
    };
    return isArray(obj);
}
var ok = isArray([]);

但不幸的是,isArray总是返回函数。怎么了?

这就是您应该如何实现

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

这就是你应该如何称呼

var ok = Array.isArray([]);

阅读手册