使用instanceof去检测数组的弊端是什么?
使用instanceof去检测数组的弊端是什么?
一般我们说去检测数组,会使用到
if (value instanceof Array){ // 操作数组 }
使用这一方法可能大家很少会注意到会有什么问题。 这也是我看书看到的,所以分享给大家。虽然这很少见到
使用 `instanceof` 的问题是假定只有一个全局执行上下文。如果网页里有多个框架,则可能涉及两 个不同的全局执行上下文,因此就会有两个不同版本的 Array 构造函数。如果要把数组从一个框架传 给另一个框架,则这个数组的构造函数将有别于在第二个框架内本地创建的数组。
为解决这个问题,ECMAScript 提供了 Array.isArray()方法。这个方法的目的就是确定一个值是 否为数组,而不用管它是在哪个全局执行上下文中创建的。来看下面的例子:
if (Array.isArray(value)){ // 操作数组 }