理解JAVASCRIPT中hasOwnProperty()的作用


Posted in Javascript onJune 05, 2013

JavaScript中hasOwnProperty函数方法是返回一个布尔值,指出一个对象是否具有指定名称的属性。

hasOwnProperty()使用方法:

object.hasOwnProperty(proName)
其中参数object是必选项。一个对象的实例。
proName是必选项。一个属性名称的字符串值。

如果 object 具有指定名称的属性,那么JavaScript中hasOwnProperty函数方法返回 true;反之则返回 false。此方法无法检查该对象的原型链中是否具有该属性;该属性必须是对象本身的一个成员。在下例中,所有的 String 对象共享一个公用 split 方法。下面的代码将输出 false 和 true。

var s = new String("JScript");
print(s.hasOwnProperty("split"));
print(String.prototype.hasOwnProperty("split"));

hasOwnProperty:是用来判断一个对象是否有你给出名称的属性或对象。不过需要注意的是,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员。格式如下:

Js代码

1. object.hasOwnProperty(proName); 

判断proName的名称是不是object对象的一个属性或对象。

1. 示例一:

var bStr = "Test String".hasOwnProperty("split");    // 得到false, 因为不能检测原型链中的属性 

但是:

"Test String".split(" ");是能成功调用的

2.示例二:

var bStr1 = String.prototype.hasOwnProperty("split"); //String对象的原型上本来就有这个属性,自然返回true 

3. 示例三

 var bObj = ({fnTest:function(){}}).hasOwnProperty("fnTest"); // 返回true,因为对象中属性 存在

 Object 对象

Object 对象自身用处不大,不过在了解其他类之前,还是应该了解它。因为 ECMAScript 中的 Object 对象与 Java 中的 java.lang.object 相似,ECMAScript 中的所有对象都由这个对象继承而来,Object 对象中的所有属性和方法都会出现在其他对象中,所以理解了 Object 对象,就可以更好地理解其他对象。

Object 对象具有下列属性:

constructor
     对创建对象的函数的引用(指针)。对于 Object 对象,该指针指向原始的 Object() 函数。
Prototype
     对该对象的对象原型的引用。对于所有的对象,它默认返回 Object 对象的一个实例。

Object 对象还具有几个方法:

    hasOwnProperty(property)
     判断对象是否有某个特定的属性。必须用字符串指定该属性。(例如,o.hasOwnProperty("name"))
    IsPrototypeOf(object)
    判断该对象是否为另一个对象的原型。
    PropertyIsEnumerable
    判断给定的属性是否可以用 for...in 语句进行枚举。
    ToString()
    返回对象的原始字符串表示。对于 Object 对象,ECMA-262 没有定义这个值,所以不同的 ECMAScript 实现具有不同的值。
   ValueOf()
    返回最适合该对象的原始值。对于许多对象,该方法返回的值都与 ToString() 的返回值相同

Javascript 相关文章推荐
JQuery小知识
Oct 15 Javascript
JQuery动态创建DOM、表单元素的实现代码
Aug 09 Javascript
对new functionName()定义一个函数的理解
May 22 Javascript
javascript表单正则应用
Feb 04 Javascript
js的OOP继承实现(必看篇)
Feb 18 Javascript
javascript 动态生成css代码的两种方法
Mar 17 Javascript
浅谈jQuery框架Ajax常用选项
Jul 08 jQuery
浅谈JS中的反柯里化( uncurrying)
Aug 17 Javascript
JavaScript实现的DOM绘制柱状图效果示例
Aug 08 Javascript
一次Webpack配置文件的分离实战记录
Nov 30 Javascript
jquery UI实现autocomplete在获取焦点时得到显示列表功能示例
Jun 04 jQuery
微信小程序-可移动菜单的实现过程详解
Jun 24 Javascript
jquery 面包屑导航 具体实现
Jun 05 #Javascript
JSCode all of Brower 全局屏蔽网页右键功能 具体实现
Jun 05 #Javascript
js 获取后台的字段 改变 checkbox的被选中的状态 代码
Jun 05 #Javascript
JQuery AJAX 中文乱码问题解决
Jun 05 #Javascript
Javascript自定义排序 node运行 实例
Jun 05 #Javascript
jquery 文本上下无缝滚动,鼠标放上去就停止 小例子
Jun 05 #Javascript
jquery实现控制表格行高亮实例
Jun 05 #Javascript
You might like
php中文件上传的安全问题
2006/10/09 PHP
PHP+Tidy-完美的XHTML纠错+过滤
2007/04/10 PHP
PHP序列号生成函数和字符串替换函数代码
2012/06/07 PHP
YII2框架中使用yii.js实现的post请求
2017/04/09 PHP
cloudgamer出品ImageZoom 图片放大效果
2010/04/01 Javascript
js过滤数组重复元素的方法
2010/09/05 Javascript
javascript getElementsByClassName实现代码
2010/10/11 Javascript
js导出txt示例代码
2014/01/14 Javascript
jQuery之ajax删除详解
2014/02/27 Javascript
使用FlexiGrid实现Extjs表格效果方法分享
2014/12/16 Javascript
Node.js开源应用框架HapiJS介绍
2015/01/14 Javascript
javascript图片延迟加载实现方法及思路
2015/12/31 Javascript
JS 事件绑定、事件监听、事件委托详细介绍
2016/09/28 Javascript
深入学习Bootstrap表单
2016/12/13 Javascript
JavaScript原生数组Array常用方法
2017/04/06 Javascript
浅谈angular4实际项目搭建总结
2017/12/01 Javascript
JS 数组随机洗牌的实例代码
2018/09/12 Javascript
JavaScript进制转换实现方法解析
2020/01/18 Javascript
Python中的推导式使用详解
2015/06/03 Python
Python数据结构之双向链表的定义与使用方法示例
2018/01/16 Python
1 行 Python 代码快速实现 FTP 服务器
2018/01/25 Python
numpy.delete删除一列或多列的方法
2018/04/03 Python
在PyCharm下使用 ipython 交互式编程的方法
2019/01/17 Python
详解Python绘图Turtle库
2019/10/12 Python
python 循环数据赋值实例
2019/12/02 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
2020/02/04 Python
Django扫码抽奖平台的配置过程详解
2021/01/14 Python
美国轮胎网站:Priority Tire
2018/11/28 全球购物
Java工程师面试集锦之Spring框架
2013/06/16 面试题
假日旅行社实习自我鉴定
2013/09/24 职场文书
求职信范文怎么写
2014/01/29 职场文书
市场营销毕业生自荐信范文
2014/04/01 职场文书
2014小学一年级班主任工作总结
2014/12/05 职场文书
检讨书范文500字
2015/01/28 职场文书
体育个人工作总结
2015/02/09 职场文书
分析Netty直接内存原理及应用
2021/06/14 Java/Android