理解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一些题目的解析
Dec 25 Javascript
vue快捷键与基础指令详解
Jun 01 Javascript
webpack处理 css\less\sass 样式的方法
Aug 21 Javascript
vue+socket.io+express+mongodb 实现简易多房间在线群聊示例
Oct 21 Javascript
JS实现去除数组中重复json的方法示例
Dec 21 Javascript
ionic3实战教程之随机布局瀑布流的实现方法
Dec 28 Javascript
几个你不知道的技巧助你写出更优雅的vue.js代码
Jun 11 Javascript
Vue中$refs的用法详解
Jun 24 Javascript
Nuxt配合Node在实际生产中的应用详解
Aug 07 Javascript
微信小程序实现图片滚动效果示例
Dec 05 Javascript
使用Vue 实现滑动验证码功能
Jun 27 Javascript
ES6中Symbol、Set和Map用法详解
Aug 20 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 shell命令合并图片的代码
2011/06/23 PHP
php入门学习知识点四 PHP正则表达式基本应用
2011/07/14 PHP
php 目录遍历、删除 函数的使用介绍
2013/04/28 PHP
php计算程序运行时间的简单例子分享
2014/05/10 PHP
为你总结一些php信息函数
2015/10/21 PHP
php+mysql实现的二级联动菜单效果详解
2016/05/10 PHP
thinkphp关于简单的权限判定方法
2017/04/03 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
jQuery 打造动态下滑菜单实现说明
2010/04/15 Javascript
前台js调用后台方法示例
2013/12/02 Javascript
jQuery实现Tab菜单滚动切换的方法
2015/09/21 Javascript
jquery单击事件和双击事件冲突解决方案
2016/03/02 Javascript
Vue组件BootPage实现简单的分页功能
2016/09/12 Javascript
BootStrap中Table隐藏后显示问题的实现代码
2017/08/31 Javascript
一文了解vue-router之hash模式和history模式
2019/05/31 Javascript
JS实现提示效果弹出及延迟隐藏的功能
2019/08/26 Javascript
关于layui时间回显问题的解决方法
2019/09/24 Javascript
微信小程序如何加载数据库真实数据的实现
2020/03/04 Javascript
重命名批处理python脚本
2013/04/05 Python
Python使用urllib模块的urlopen超时问题解决方法
2014/11/08 Python
linux下python抓屏实现方法
2015/05/22 Python
python线程池(threadpool)模块使用笔记详解
2017/11/17 Python
Django中ORM外键和表的关系详解
2019/05/20 Python
Python 从subprocess运行的子进程中实时获取输出的例子
2019/08/14 Python
关于pytorch中网络loss传播和参数更新的理解
2019/08/20 Python
python sklearn包——混淆矩阵、分类报告等自动生成方式
2020/02/28 Python
Backcountry旗下的户外商品闪购网站:steep&cheap
2016/09/22 全球购物
澳大利亚工具仓库:Tools Warehouse
2018/10/15 全球购物
Ref与out有什么不同
2012/11/24 面试题
高级护理专业毕业生推荐信
2013/12/25 职场文书
毕业生的自我评价范文
2013/12/31 职场文书
新领导上任欢迎词
2014/01/13 职场文书
我的中国梦口号
2014/06/16 职场文书
党员干部群众路线个人整改措施
2014/09/18 职场文书
保姆聘用合同
2015/09/21 职场文书
常用的MongoDB查询语句的示例代码
2021/07/25 MongoDB