JavaScript isPrototypeOf和hasOwnProperty使用区别


Posted in Javascript onMarch 04, 2010

1、isPrototypeOf
isPrototypeOf是用来判断指定对象object1是否存在于另一个对象object2的原型链中,是则返回true,否则返回false。
格式如下:
object1.isPrototypeOf(object2);
object1是一个对象的实例;
object2是另一个将要检查其原型链的对象。
原型链可以用来在同一个对象类型的不同实例之间共享功能。
如果 object2 的原型链中包含object1,那么 isPrototypeOf 方法返回 true。
如果 object2 不是一个对象或者 object1 没有出现在 object2 中的原型链中,isPrototypeOf 方法将返回 false。
使用举例如下:

var re = /^\s*/; 
// 这里定义一个正则表达式对象 
// 这里检查RegExp是不是re的原形链对象,返回true 
var bIsptt = RegExp.prototype.isPrototypeOf(re);

2、hasOwnProperty
hasOwnProperty判断一个对象是否有名称的属性或对象,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员。
如果该属性或者方法是该 对象自身定义的而不是器原型链中定义的 则返回true;否则返回false;
格式如下:
object.hasOwnProperty(proName);
判断proName的名称是不是object对象的一个属性或对象。使用举例如下:
// 得到false, 因为不能检测原型链中的属性 
var bStr = "Test String".hasOwnProperty("split"); 
// String对象的原型上本来就有这个属性,自然返回true 
var bStr1 = String.prototype.hasOwnProperty("split"); 
// 返回true,因为不是检测原型中的属性 
var bObj = ({fnTest:function(){}}).hasOwnProperty("fnTest");
Javascript 相关文章推荐
jquery 插件实现图片延迟加载效果代码
Feb 06 Javascript
关于onScroll事件在IE6下每次滚动触发三次bug说明
Sep 21 Javascript
深入理解jQuery中live与bind方法的区别
Dec 18 Javascript
BootStrap中Tab页签切换实例代码
May 30 Javascript
javascript 动态脚本添加的简单方法
Oct 11 Javascript
利用Angularjs中模块ui-route管理状态的方法
Dec 27 Javascript
原生js实现吸顶效果
Mar 13 Javascript
Vue filters过滤器的使用方法
Jul 14 Javascript
JS常用的几种数组遍历方式以及性能分析对比实例详解
Apr 11 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
Dec 13 Javascript
[原创]微信小程序获取网络类型的方法示例
Mar 01 Javascript
Vue 401配合Vuex防止多次弹框的案例
Nov 11 Javascript
AppBaseJs 类库 网上常用的javascript函数及其他js类库写的
Mar 04 #Javascript
JavaScript类和继承 constructor属性
Mar 04 #Javascript
爆炸式的JS圆形浮动菜单特效代码
Mar 03 #Javascript
js 编写规范
Mar 03 #Javascript
jquery validation插件表单验证的一个例子
Mar 03 #Javascript
Jquery 实现Tab效果 思路是js思路
Mar 02 #Javascript
JavaScript页面刷新与弹出窗口问题的解决方法
Mar 02 #Javascript
You might like
ThinkPHP之R方法实例详解
2014/06/20 PHP
php使用ZipArchive函数实现文件的压缩与解压缩
2015/10/27 PHP
使用Zttp简化Guzzle 调用
2017/07/02 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
iframe子页面与父页面在同域或不同域下的js通信
2014/05/07 Javascript
推荐8款jQuery轻量级树形Tree插件
2014/11/12 Javascript
jQuery实现图片文字淡入淡出效果
2015/12/21 Javascript
jQuery 获取遍历获取table中每一个tr中的第一个td的方法
2016/10/05 Javascript
探究Vue.js 2.0新增的虚拟DOM
2016/10/20 Javascript
JS调用某段SQL语句的方法
2016/10/20 Javascript
JS实现根据用户输入分钟进行倒计时功能
2016/11/14 Javascript
JQuery和PHP结合实现动态进度条上传显示
2016/11/23 Javascript
jQuery操作复选框(CheckBox)的取值赋值实现代码
2017/01/10 Javascript
解决VUE中document.body.scrollTop为0的问题
2018/09/15 Javascript
微信小程序实现动态获取元素宽高的方法分析
2018/12/10 Javascript
vue iview多张图片大图预览、缩放翻转
2019/07/13 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
2021/01/07 Vue.js
[02:15]2014DOTA2国际邀请赛 赛后退役选手回顾
2014/08/01 DOTA
[01:21]DOTA2新纪元-7.0新版本即将开启!
2016/12/11 DOTA
[47:21]Liquid vs TNC Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
[05:09]DOTA2-DPC中国联赛2月22日Recap集锦
2021/03/11 DOTA
python读取注册表中值的方法
2013/04/08 Python
Python的ORM框架SQLAlchemy入门教程
2014/04/28 Python
你真的了解Python的random模块吗?
2017/12/12 Python
使用python Fabric动态修改远程机器hosts的方法
2018/10/26 Python
使用python将请求的requests headers参数格式化方法
2019/01/02 Python
使用matplotlib中scatter方法画散点图
2019/03/19 Python
python实现局域网内实时通信代码
2019/12/22 Python
详解Canvas实用库Fabric.js使用手册
2019/01/07 HTML / CSS
校园自助餐厅的创业计划书
2013/12/26 职场文书
个人师德师风自我剖析材料
2014/09/29 职场文书
交流会主持词
2015/07/02 职场文书
2019教师的学习计划
2019/06/25 职场文书
创业计划之特色精品店
2019/08/12 职场文书
2019关于垃圾分类处理的调查报告
2019/12/26 职场文书
Python学习开发之图形用户界面详解
2021/08/23 Python