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 相关文章推荐
前淘宝前端开发工程师阿当的PPT中有JS技术理念问题
Jan 15 Javascript
dojo随手记 gird组件引用
Feb 24 Javascript
基于JQuery模仿苹果桌面的Dock效果(初级版)
Oct 15 Javascript
jQuery each函数源码分析
May 25 Javascript
Javascript中的对象和原型(二)
Aug 12 Javascript
基于jQuery实现手风琴菜单、层级菜单、置顶菜单、无缝滚动效果
Jul 20 jQuery
微信小程序实现简单input正则表达式验证功能示例
Nov 30 Javascript
解决vue打包之后静态资源图片失效的问题
Feb 21 Javascript
详解vue组件开发脚手架
Jun 15 Javascript
微信小程序常用简易小函数总结
Feb 01 Javascript
JS如何在数组指定位置插入元素
Mar 10 Javascript
javascript实现贪吃蛇经典游戏
Apr 10 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 CKEditor 上传图片实现代码
2009/11/06 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
2014/05/15 PHP
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
2015/10/10 PHP
smarty简单应用实例
2015/11/03 PHP
PHP常用设计模式之委托设计模式
2016/02/13 PHP
PHP中实现中文字串截取无乱码的解决方法
2018/05/29 PHP
PHP7实现和CryptoJS的AES加密方式互通示例【AES-128-ECB加密】
2019/06/08 PHP
Laravel 创建指定表 migrate的例子
2019/10/09 PHP
jQuery EasyUI API 中文文档 - MenuButton菜单按钮使用介绍
2011/10/06 Javascript
javascript小数四舍五入多种方法实现
2012/12/23 Javascript
jQuery使用attr()方法同时设置多个属性值用法实例
2015/03/26 Javascript
JavaScript实现鼠标滑过图片变换效果的方法
2015/04/16 Javascript
jquery实现表单验证并阻止非法提交
2015/07/09 Javascript
javascript实现数组去重的多种方法
2016/03/14 Javascript
node.js学习之交互式解释器REPL详解
2016/12/08 Javascript
js中url对象化管理分析
2017/12/29 Javascript
浅谈vue同一页面中拥有两个表单时,的验证问题
2018/09/18 Javascript
Vue项目查看当前使用的elementUI版本的方法
2018/09/27 Javascript
jQuery实现简单日历效果
2020/07/05 jQuery
[55:25]2018DOTA2亚洲邀请赛3月29日 小组赛A组 VG VS OG
2018/03/30 DOTA
python处理二进制数据的方法
2015/06/03 Python
python 读写中文json的实例详解
2017/10/29 Python
Python设计模式之中介模式简单示例
2018/01/09 Python
python 输出所有大小写字母的方法
2019/01/02 Python
深入浅析Python科学计算库Scipy及安装步骤
2019/10/12 Python
python 消除 futureWarning问题的解决
2019/12/25 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
2020/01/20 Python
基于Pytorch SSD模型分析
2020/02/18 Python
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
美国豪华的多品牌精品店:The Webster
2019/07/31 全球购物
初任培训自我鉴定
2013/10/07 职场文书
传播学专业毕业生自荐信
2013/11/04 职场文书
销售内勤岗位职责
2015/02/10 职场文书
信仰纪录片观后感
2015/06/08 职场文书
《山中访友》教学反思
2016/02/24 职场文书
python 远程执行命令的详细代码
2022/02/15 Python