3 回答
TA贡献1788条经验 获得超4个赞
尝试使用instanceof运算符
const arr = [];
console.log(arr instanceof Array); // true
const obj = {};
console.log(obj instanceof Array); // false
TA贡献1784条经验 获得超7个赞
因为 anarray
在技术上是一种类型object
- 只是具有某些能力和行为,例如附加方法Array.prototype.push()
和Array.prototype.unshift()
。数组是常规对象,其中整数键属性和长度属性之间存在特定关系。
要确定您是否有专门的数组,您可以使用 Array.isArray()
.
TA贡献2003条经验 获得超2个赞
在 JavaScript 中,几乎所有东西都是对象。
它使用原型链来实现继承。
您可以只使用 console.log( [] ) 并查看原型部分以查看它是从对象继承的。
这是制作自己的数组的简单方法。
function MyArray(){
Object.defineProperty(this, 'length', {
value: 0,
enumerable: false,
writable: true,
})
}
MyArray.prototype.push = function(elem){
this[this.length] = elem
this.length++
return this.length
}
MyArray.prototype.isMyArray = function(instance){
return instance instanceof MyArray
}
var arr = new MyArray()
arr.push(1)
arr.push(2)
arr.push(3)
console.log('instance', MyArray.prototype.isMyArray( arr ))
// instance true
console.log('object', typeof arr)
// object object
添加回答
举报