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 相关文章推荐
一直复略了的一个问题,关于表单重复提交
Feb 15 Javascript
Jquery post传递数组方法实现思路及代码
Apr 28 Javascript
Javascript对象属性方法汇总
Nov 21 Javascript
JS+DIV实现鼠标划过切换层效果的实例代码
Nov 26 Javascript
动态创建script标签实现跨域资源访问的方法介绍
Feb 28 Javascript
js触发onchange事件的方法说明
Mar 08 Javascript
模拟用户点击弹出新页面不会被浏览器拦截
Apr 08 Javascript
13 款最热门的 jQuery 图像 360 度旋转插件推荐
Dec 09 Javascript
JS常用算法实现代码
Nov 14 Javascript
Bootstrap Table使用整理(三)
Jun 09 Javascript
js实现计时器秒表功能
Dec 16 Javascript
vue实现登录、注册、退出、跳转等功能
Dec 23 Vue.js
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
一个可以删除字符串中HTML标记的PHP函数
2006/10/09 PHP
mysq GBKl乱码
2006/11/28 PHP
解决GD中文乱码问题
2007/02/14 PHP
php 在线打包_支持子目录
2008/06/28 PHP
PHP实现定时生成HTML网站首页实例代码
2008/11/20 PHP
php生成EAN_13标准条形码实例
2013/11/13 PHP
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
2014/04/29 PHP
优化WordPress中文章与评论的时间显示
2016/01/12 PHP
使用PHP免费发送定时短信的实例
2016/10/24 PHP
教您去掉ie网页加载进度条的方法
2010/12/09 Javascript
修改jQuery Validation里默认的验证方法
2012/02/14 Javascript
通过Jquery的Ajax方法读取将table转换为Json
2014/05/31 Javascript
jQuery实现带玻璃流光质感的手风琴特效
2015/11/20 Javascript
JavaScript对象参数的引用传递
2016/01/14 Javascript
移动端js图片查看器
2016/11/17 Javascript
nodeJs链接Mysql做增删改查的简单操作
2017/02/04 NodeJs
使用DataTable插件实现异步加载数据
2017/11/19 Javascript
json对象及数组键值的深度大小写转换问题详解
2018/03/30 Javascript
浅谈React Native 传参的几种方式(小结)
2019/05/21 Javascript
vue使用recorder.js实现录音功能
2019/11/22 Javascript
vue中实现高德定位功能
2019/12/03 Javascript
[01:56]2014DOTA2西雅图邀请赛 MVP外卡赛老队长精辟点评
2014/07/09 DOTA
深入解析Python中的__builtins__内建对象
2016/06/21 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
2018/05/25 Python
详解django中Template语言
2020/02/22 Python
英国最大的宠物食品和宠物用品网上零售商: Zooplus
2016/08/01 全球购物
垃圾回收的优点和原理。并考虑2种回收机制
2016/10/16 面试题
经典C++面试题一
2016/11/06 面试题
Prototype是怎么扩展DOM的
2014/10/01 面试题
六十岁生日答谢词
2014/01/10 职场文书
党的群众路线教育实践活动批评与自我批评
2014/02/16 职场文书
幼儿园三八妇女节活动方案
2014/03/11 职场文书
幼儿园教师的考核评语
2014/04/18 职场文书
2015-2016年小学教导工作总结
2015/07/21 职场文书
node快速搭建后台的实现步骤
2022/02/18 NodeJs
微信小程序 根据不同用户切换不同TabBar
2022/04/21 Javascript