JS高级语法-对象有关的常用API---isPrototypeOf()、hasOwnProperty()、instanceof、typeof、in

本文主要介绍了JavaScript中与对象和原型相关的五个常用方法和操作符:isPrototypeOf()用于检查对象是否在原型链上,hasOwnProperty()判断属性是否属于构造函数内部,instanceof确定对象是否为特定构造函数的实例,typeof返回数据类型的字符串,以及in操作符检测对象是否包含特定属性。内容适合初学者,通过实例解析了这些方法的用法和应用场景。
摘要由CSDN通过智能技术生成

@写在前面 :对于初学者友好,变量声明没有采取ES6标准,请自行食用

以下为个人学习中结合老师所讲的个人理解,如果帮助到喜欢学习的你我将倍感荣幸,如果有哪里缺漏或错误的地方望指正

本文将简单介绍关于对象以及原型的几个常用方法和操作符的含义及用法


1.isPrototypeOf()

isPrototypeOf()-用来检测调用者的原型对象是否在另一对象(参数)的原型链上返回布尔值(Boolean)
简单用法可以检侧当前对象(参数)是否基于调用该方法的构造函数创建出来的
如果说当前对象在另一对象的原型链上或者说当前对象是另外一个对象的原型,就返回true,如果不在就返回false

语法

prototypeObj.isPrototypeOf(obj);构造函数.原型(原型对象).isPrototypeOf(对象实例);

例:

//创建一个人类构造函数
funciton Person(name,age){
   
    this.name=name;
    this.age=age;
    this.show=function(){
   
	console.log(this.name);
    }
}
//showInfo方法放在构造函数的原型里
Person.prototype.showInfo=function(){
   
    console.log(this.name);
}

//创建一个人类实例对象
var p1=new Person("张三",23);
//再创建一个普通对象
var obj=new Object();

将以上创建的构造函数以及对象实例的检测结果分别进行输出并解释

其中Person.prototype以及Object.prototype分别为PersonObject的原型对象

//描述1:检测Person的原型对象是否在p1实例对象的原型链上
//描述2:检测实例对象p1是否基于构造函数Person创建
console.log(Person.prototype.isPrototypeOf(p1));//--true 
console.log(p1);

请添加图片描述

从上图我们可以看出,该检测结果为true,表明p1实例对象就是基于Person构造函数创建的,p1的原型链上,存在Person构造函数的原型对象

这也就是isPrototypeOf()的作用

这里可以实验一下新创建的obj实例对象

//因为Person继承了Object,所以基于Person创建的实例对象的原型链上是有Object的,而且Object是原型链的终点,所以为true
console.log(Object.prototype.isPrototypeOf(p1));//--true检测Object的原型对象是否在p1实例对象的原型链上
//这个就不用多讲了,obj就是基于Object创建的
console.log(Object.prototype.isPrototypeOf(obj));//--true检测Object的原型对象是否在obj实例对象的原型链上
//这里表明Person对象继承了Object的原型对象,Object的原型对象在Person对象的原型链上
console.log(Object.prototype.isPrototypeOf
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值