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 相关文章推荐
两个select之间option的互相添加操作(jquery实现)
Nov 12 Javascript
js 纯数字不重复排列的另类方法
Jul 17 Javascript
Node.js异步I/O学习笔记
Nov 04 Javascript
jQuery实现tag便签去重效果的方法
Jan 20 Javascript
javascript结合Canvas 实现简易的圆形时钟
Mar 11 Javascript
JavaScript父子窗体间的调用方法
Mar 31 Javascript
JS实现鼠标滑过链接改变网页背景颜色的方法
Oct 20 Javascript
Javascript中arguments对象的详解与使用方法
Oct 04 Javascript
jQuery 插件封装的方法
Nov 16 Javascript
Node.js中流(stream)的使用方法示例
Jul 16 Javascript
layui select动态添加option的实例
Mar 07 Javascript
原生JavaScript实现的无缝滚动功能详解
Jan 17 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
PHP n个不重复的随机数生成代码
2009/06/23 PHP
php中的比较运算符详解
2013/10/28 PHP
Linux下PHP安装mcrypt扩展模块笔记
2014/09/10 PHP
php简单日历函数
2015/10/28 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
2017/10/13 PHP
php判断IP地址是否在多个IP段内
2020/08/18 PHP
PHP实现Snowflake生成分布式唯一ID的方法示例
2020/08/30 PHP
Node.js实战 建立简单的Web服务器
2012/03/08 Javascript
JS实现至少包含字母、大小写数字、字符的密码等级的两种方法
2015/02/03 Javascript
BOOTSTRAP时间控件显示在模态框下面的bug修复
2015/02/05 Javascript
JavaScript实现点击文字切换登录窗口的方法
2015/05/11 Javascript
在JavaScript中如何解决用execCommand(
2015/10/19 Javascript
JavaScript实现的MD5算法完整实例
2016/02/02 Javascript
JS实现添加,替换,删除节点元素的方法
2016/06/30 Javascript
需要牢记的JavaScript基础知识
2016/09/25 Javascript
JavaScript实现的微信二维码图片生成器的示例
2016/10/26 Javascript
angular双向绑定模拟探索
2016/12/26 Javascript
JavaScript判断浏览器及其版本信息
2017/01/20 Javascript
js轮播图无缝滚动效果
2017/06/17 Javascript
详解angularJS自定义指令间的相互交互
2017/07/05 Javascript
vue父组件向子组件(props)传递数据的方法
2018/01/02 Javascript
详解Vue一个案例引发「内容分发slot」的最全总结
2018/12/02 Javascript
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
2019/01/18 jQuery
[03:58]2014DOTA2国际邀请赛 龙宝赛后解密DK获胜之道
2014/07/14 DOTA
python使用循环实现批量创建文件夹示例
2014/03/25 Python
python小技巧之批量抓取美女图片
2014/06/06 Python
Python用imghdr模块识别图片格式实例解析
2018/01/11 Python
谈谈Python:为什么类中的私有属性可以在外部赋值并访问
2020/03/05 Python
Django QuerySet查询集原理及代码实例
2020/06/13 Python
最简单的matplotlib安装教程(小白)
2020/07/28 Python
圣彼得堡鲜花配送:Semicvetic
2020/09/15 全球购物
小学感恩节活动策划方案
2014/10/06 职场文书
老公保证书
2015/01/17 职场文书
2015年社会实践个人总结
2015/03/06 职场文书
部门优秀员工推荐信
2015/03/24 职场文书
小学教代会开幕词
2016/03/04 职场文书