理解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 相关文章推荐
JavaScript setTimeout和setInterval的使用方法 说明
Mar 25 Javascript
谈谈关于JavaScript 中的 MVC 模式
Apr 11 Javascript
jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)
Feb 25 Javascript
js简单实现调整网页字体大小的方法
Jul 23 Javascript
JS扩展类,克隆对象与混合类实例分析
Nov 26 Javascript
js实现3D图片环展示效果
Mar 09 Javascript
vue.js实现数据动态响应 Vue.set的简单应用
Jun 15 Javascript
详解vue数据渲染出现闪烁问题
Jun 29 Javascript
微信小程序模板(template)使用详解
Jan 31 Javascript
详解vue项目打包后通过百度的BAE发布到网上的流程
Mar 05 Javascript
Vue环境搭建+VSCode+Win10的详细教程
Aug 19 Javascript
vue中使用router全局守卫实现页面拦截的示例
Oct 23 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实现12306火车票余票查询和价格查询(12306火车票查询)
2014/01/14 PHP
CodeIgniter模板引擎使用实例
2014/07/15 PHP
PHP易混淆函数的区别及用法汇总
2014/11/22 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
2017/03/16 PHP
PHP中include和require的区别实例分析
2017/05/07 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
2019/03/22 PHP
javascript 写类方式之七
2009/07/05 Javascript
jQuery实现的仿百度分页足迹效果代码
2015/10/30 Javascript
JS实现选定指定HTML元素对象中指定文本内容功能示例
2017/02/13 Javascript
Web开发中客户端的跳转与服务器端的跳转的区别
2017/03/05 Javascript
JS中IP地址与整数相互转换的实现代码
2017/04/10 Javascript
React组件之间的通信的实例代码
2017/06/27 Javascript
Nodejs+express+ejs简单使用实例代码
2017/09/18 NodeJs
微信小程序简单实现form表单获取输入数据功能示例
2017/11/30 Javascript
推荐15个最好用的JavaScript代码压缩工具
2019/02/13 Javascript
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
通过vue手动封装on、emit、off的代码详解
2019/05/29 Javascript
vue自定义标签和单页面多路由的实现代码
2020/05/03 Javascript
vue动态加载SVG文件并修改节点数据的操作代码
2020/08/17 Javascript
vue 封装面包屑组件教程
2020/11/16 Javascript
Python中使用bidict模块双向字典结构的奇技淫巧
2016/07/12 Python
python实现读取大文件并逐行写入另外一个文件
2018/04/19 Python
不管你的Python报什么错,用这个模块就能正常运行
2018/09/14 Python
Python学习笔记之变量、自定义函数用法示例
2019/05/28 Python
Python图像处理库PIL的ImageEnhance模块使用介绍
2020/02/26 Python
Python AutoCAD 系统设置的实现方法
2020/04/01 Python
python 浮点数四舍五入需要注意的地方
2020/08/18 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
2020/10/15 Python
Django配置跨域并开发测试接口
2020/11/04 Python
html5实现canvas阴影效果示例
2014/05/07 HTML / CSS
YSL圣罗兰美妆官方旗舰店:购买YSL口红
2018/04/16 全球购物
销售演讲稿范文
2014/01/08 职场文书
考试作弊检讨书大全
2014/02/18 职场文书
企业法人授权委托书
2014/09/25 职场文书
2015年班主任个人工作总结
2015/03/31 职场文书
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技