2014-02-25 28 views
1

我正在学习JavaScript。我读的书告诉我,当数值在同一网页中的 帧之间来回传递时,instanceOf无法识别Array对象,因为每个网页都有其自己的全局上下文 - 它自己的内置类型的版本。因此ECMAScript 5引入了我们应该使用的Array.isArray()。非常明确的解释。我的问题是为什么没有类似的方法为其他内置类型(如Date,RegExp)。我们如何在具有多个框架的网页中安全地识别它们。类似Array.IsArray的其他内置类型的方法

+0

使用鸭打字,以避免过度的构造鸡蛋里挑骨头,并担心所需的能力。 – dandavis

+0

[你如何检查一个变量是否是JavaScript中的数组?](http://stackoverflow.com/questions/767486/how-do-you-check-if-a-variable-is-an-阵列中的JavaScript) –

回答

1

您可以使用Object.prototype.toString

function typeOf(obj) { 
    return {}.toString.call(obj).slice(8,-1); 
} 

typeOf(obj) == 'Date' 
typeOf(obj) == 'RegExp' 
...