数组是JavaScript中对象的特例吗?

时间:2016-06-25 08:08:30

标签: javascript arrays oop object

我正在使用此代码。现在,只是为了检查,我打印 typeof arr 并显示" object"在控制台中。虽然,我在开始时将 arr 声明为数组。它被转换为对象吗? 这是代码:

<script>
function getDomainsOfEmails(text) {
    var arr=new Array;
    var regex= /[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}/g;
    var matches= text.match(regex);
    for(var i=0; i<matches.length; i++){
        arr[i]=matches[i].match(/@[a-z0-9.-]+\.[a-z]{2,4}/);
    }
    for(j=0; j<arr.length; j++){
    console.log(arr[j]);
    }
    console.log(typeof arr);
}
getDomainsOfEmails("vikaskumar2299@gmail.com is not a mail? Is vikas@xmail.com ? No? google.com? sachin@gmail.comsds gmail.com");
</script>

另外,我想知道它是否是一个对象,它的属性和值是什么?

2 个答案:

答案 0 :(得分:3)

显然是根据以下结果

typeof Array()

返回"object"

Array() instanceof Object

返回true

更新:根据API文件

  

所有Array实例都继承自Array.prototype。可以修改Array构造函数的原型对象以影响所有Array实例。

参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array#Properties_2

答案 1 :(得分:-1)

是阵列只是对象

创建一个数组

var arr = new Array();

arr .____ proto____(原始链接stackoverflow正在消耗2个不需要的内容) - &gt; Array.prototype

Array.prototype ---&gt; Object.prototype中

[1,2,3] instanceof Object ---&gt;真