JavaScript中如何判断判断一个对象是否属于某个类?

  • 首先应该明确一些基本常识也就是typeof是一个一元运算符,其调用的时候可以加括号或者不加括号的。其可以判断一些基本数据类型,同时也会将任意的引用数据类型都返回为Object,其只能很粗略的知道当前的是否为一个对象。
  • instanceof方法:其是可以判断对应的构造函数的 prototype 属性是否出现在对象的原型链中的任何位置。是会在整个对象原型链上去找。
function Car(make, model, year) {
  this.make = make;
  this.model = model;
  this.year = year;
}
const auto = new Car('Honda', 'Accord', 1998);

console.log(auto instanceof Car);
// expected output: true  

console.log(auto instanceof Object);
// expected output: true 
  • 还有就是使用初始化的实例中的对象拥有着一个指向原型链的指针,对应的创建的构造函数的原型链上有属性constructor的取值,可以直接访问这个取值来返回对应的构造函数的。但是这种方式不是很安全,因为 constructor 属性可以被改写。这里额外说一下判断数组的另外的一个方法就是使用:Array.isArray(value);
var arr123 = [1, 2, 3];
console.log(arr123.constructor);

//expected output: [Function: Array]
//
console.log(Array.isArray(arr123));
//true
  • 因为每个类都有一个[[Class]]属性,我们可以使用原型链上的这个方式来完成其的访问,便可以得到对应的详细的取值,这个方法也是目前最好的方法。Object.prototype.toString() ,使用方式如下:调用的方式要注意!
var arr123 = [1, 2, 3];
console.log(Object.prototype.toString.call(arr123));
///[object Array]

console.log(Array.prototype.toString.call(arr123));
// 1,2,3

function num() {
    return 1;
}
console.log(Object.prototype.toString.call(num));
//[object Function]
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值