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实现点击TreeView文本父节点展开/折叠子节点
Jan 10 Javascript
jquery 文本上下无缝滚动,鼠标放上去就停止 小例子
Jun 05 Javascript
微信小程序 form组件详解及简单实例
Jan 10 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
Mar 30 jQuery
angular $watch 一个变量的变化(实例讲解)
Aug 02 Javascript
AngularJS的$location使用方法详解
Oct 19 Javascript
vue 实现的树形菜的实例代码
Mar 19 Javascript
JavaScript的Object.defineProperty详解
Jul 09 Javascript
微信小程序自定义组件封装及父子间组件传值的方法
Aug 28 Javascript
中高级前端必须了解的JS中的内存管理(推荐)
Jul 04 Javascript
vue 使用 canvas 实现手写电子签名
Mar 06 Javascript
详解前端任务构建利器Gulp.js使用指南
Apr 30 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动态绑定变量的用法
2015/06/16 PHP
PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
2016/09/11 PHP
网页常用特效代码整理
2006/06/23 Javascript
求得div 下 img的src地址的js代码
2007/02/28 Javascript
javascript 定义新对象方法
2010/02/20 Javascript
Web开发者必备的12款超赞jQuery插件
2010/12/03 Javascript
js图片延迟技术一般的思路与示例
2014/03/20 Javascript
NodeJS学习笔记之Connect中间件模块(二)
2015/01/27 NodeJs
JavaScript控制按钮可用或不可用的方法
2015/04/03 Javascript
在线所见即所得HTML编辑器的实现原理浅析
2015/04/25 Javascript
浅谈javascript 函数表达式和函数声明的区别
2016/01/05 Javascript
Angular2 (RC5) 路由与导航详解
2016/09/21 Javascript
NPM 安装cordova时警告:npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to
2016/12/20 Javascript
微信小程序开发探究
2016/12/27 Javascript
JS使用面向对象技术实现的tab选项卡效果示例
2017/02/28 Javascript
Validform验证时可以为空否则按照指定格式验证
2017/10/20 Javascript
详解如何解决Vue和vue-template-compiler版本之间的问题
2018/09/17 Javascript
javascript验证form表单数据的案例详解
2019/03/25 Javascript
Vue数据绑定实例写法
2019/08/06 Javascript
解析vue、angular深度作用选择器
2019/09/11 Javascript
JS常见错误(Error)及处理方案详解
2020/07/02 Javascript
Vue切换Tab动态渲染组件的操作
2020/09/21 Javascript
Python函数中定义参数的四种方式
2014/11/30 Python
Python实现的简单文件传输服务器和客户端
2015/04/08 Python
python文件操作之目录遍历实例分析
2015/05/20 Python
Python如何判断数独是否合法
2016/09/08 Python
python urllib urlopen()对象方法/代理的补充说明
2017/06/29 Python
Python+OpenCV目标跟踪实现基本的运动检测
2018/07/10 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
2018/12/26 Python
python selenium登录豆瓣网过程解析
2019/08/10 Python
简单了解pytest测试框架setup和tearDown
2020/04/14 Python
美国户外烹饪产品购物网站:Outdoor Cooking
2020/01/10 全球购物
英语教师自荐信
2014/05/26 职场文书
篮球赛口号
2014/06/18 职场文书
高中生逃课检讨书
2014/10/10 职场文书
管理人员岗位职责
2015/02/14 职场文书