首页 > 代码库 > 如何确定 原型与实例之间的关系
如何确定 原型与实例之间的关系
instanceof 可以用来确定实例与原型之间是否存在关系
只有当原型与实例有关系的时候 才能依赖于 instanceof 确定
function SpecialArray(){ //创建数组 var values = new Array(); //添加值 values.push.apply(values, arguments); //添加方法 values.toPipedString = function(){ return this.join("|"); }; //返回数组 return values; } var colors = new SpecialArray("red", "blue", "green"); console.log(colors instanceof SpecialArray) //false
colors的实际构造函数为 SpecialArray 里面的 Array 虽然是通过new SpecialArray 创建的实例 但实际上 跟SpecialArray构造函数或构造函数的原型属性之间没有关系
因此不能依赖 instanceof 来确定对象
实例对象的可能同时与几个原型之间都关系 因为所有对象都继承了Object
console.log(colors instanceof Object); //true console.log(colors instanceof Array); //true
由于原型链的关系,可以说 colors 是 Object、Array中任何一个类型的实例
判断原型与实例的关系还可以通过 isPrototypeOf() 方法
用法:
console.log(Object.prototype.isPrototypeOf(colors)) //true
如何确定 原型与实例之间的关系
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。