考虑以下代码:
const arr = [];
console.log(arr.constructor); // logs 'Array()'
console.log(typeof arr.constructor); // logs "function"
基本上,Array()
是一个构造函数/类。
奇怪的是,如果您在控制台中展开“Array()
,您会看到直接在其上列出的concat
,filter
等方法(即直接在arr.constructor
上)。但是,这些方法也按预期列在arr.constructor.prototype
下。
所以我的问题是,为什么在两个地方定义相同的方法?