# 解题思路 or 实现原理
使用 Object.prototype.toString
取得对象的一个内部属性 [[Class]]
,然后依据这个属性,返回 '[object Array]'
字符串作为结果(ECMA
标准中使用[[]]
来表示语言内部用到的、外部不可直接访问的属性,称为内部属性
)。利用这 个方法,再配合 call
,我们可以取得任何对象的内部属性 [[Class]]
,然后把类型检测转化为字符串比较,以达到我们的目的。
# 实现代码
/*
* @Author: Rainy
* @Date: 2019-11-14 19:25:01
* @LastEditors : Rainy
* @LastEditTime : 2020-02-05 15:50:12
*/
import { isAbsType } from '../../utils/type';
export function _isArray(target: any): boolean {
return isAbsType(target).toLowerCase() === 'array';
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12