文章目录
@写在前面 :对于初学者友好,变量声明没有采取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
分别为Person
和Object
的原型对象
//描述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