JS isPrototypeOf()方法:检测一个对象是否存在于另一个对象的原型链中
isPrototypeOf() 方法用来检测一个对象是否存在于另一个对象的原型链中,如果存在就返回 true,否则就返回 false。
isPrototypeOf() 的语法格式如下:
prototypeObject.isPrototypeOf(object);
参数说明:object 参数是 Object 类型的一个对象,将对其原型链进行检查。
返回值:isPrototypeOf() 函数的返回值为 Boolean 类型。如果 object 的原型链中存在 prototypeObject 对象,那么返回 true;如果 object 不是对象,或者 object 的原型链中不存在 prototypeObject 对象,那么返回 false。
在 JavaScript 中,Function 对象预定义了 prototype 属性,该属性指向一个原型对象。当定义构造函数时,系统会自动创建一个对象,并传递给 prototype 属性,这个对象被称为原型对象。原型对象可以存储结构类型的原型属性,以便于所有实例对象共享。
下面代码为自定义类型函数定义两个原型成员。
var f = function () {} //定义函数 f.prototype = { //函数的原型对象 a : 1, b : function () { return 2; console.log(f.prototype.a); //读取函数的原型对象的属性a,返回1 console.log(f.prototype.b()); //读取函数的原型对象的属性b,返回2
当使用 new 运算符调用函数时,就会创建一个实例对象,这个实例对象将继承构造函数的原型对象中所有的属性。
var o = new f(); //实例对象 console.log(o.a); //访问原型对象的属性 console.log(o.b()); //访问原型对象的属性
为了方便判定,Object 对象定义了 isPrototypeOf() 方法,该方法可以检测一个对象的原型对象。
通过下面示例,可以判断 f.prototype 就是对象 o 的原型对象,因为其返回值为 true。
var b = f.prototype.isPrototypeOf(o); console.log(b);
下面示例演示了各种特殊对象的原型对象。
1) 函数的原型对象可以是 Object.prototype,或者是 Function.prototype。
var f = function () {} console.log(Object.prototype.isPrototypeOf(f)); //返回true console.log(Function.prototype.isPrototypeOf(f)); //返回true
2) Object 和 Function 对象的原型对象比较特殊。
console.log(Function.prototype.isPrototypeOf(Object)); //返回true console.log(Object.prototype.isPrototypeOf(Function)); //返回true
3) Object.prototype 和 Function.prototype 的原型对象不是 Object.prototype,Function.prototype 的原型对象可以是 Function.prototype,但是 Object.prototype 的原型对象绝对不是 Function.prototype。
console.log(Object.prototype.isPrototypeOf(Object.prototype)); //返回false console.log(Object.prototype.isPrototypeOf(Function.prototype)); //返回true console.log(Function.prototype.isPrototypeOf(Function.prototype)); //返回false console.log(Function.prototype.isPrototypeOf(Object.prototype)); //返回false
23185.html
javaJavaScript相关文章
- java json对象和json字符串互转的方法_js中对象转字符串的方法
- js对象判断方法
- YUI Compressor插件压缩后war中的js/css文件未压缩的解决方法(被maven打包顶替了)
- js对象转数组 entries方法
- 数组转对象2种方法有哪些_js 数组转对象
- js中对数组进行遍历都有哪些方法_js遍历json对象
- js遍历对象属性的一些方法有哪些_js面试遍历对象的所有属性
- js对象动态赋值---融会贯通
- JS valueOf()方法:返回对象的值
- 妙用JS获取Oracle信息的快速方法(js获取Oracle)
- JS将文件传输至MySQL数据库(.js传文件至mysql)
- js确定对象类型方法
- js数组Arraysort方法使用深入分析
- 扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
- js导出格式化的excel实例方法
- js跨浏览器实现将字符串转化为xml对象的方法
- js传参数受特殊字符影响错误的解决方法
- js将json格式内容转换成对象的方法
- 关于js和php对url编码的处理方法
- js中把JSON字符串转换成JSON对象最好的方法
- js获取元素下面所有li的两种方法
- js去除字符串第一位逗号的方法
- js使用Array.prototype.sort()对数组对象排序的方法