理解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 相关文章推荐
写了10年的Javascript也未必全了解的连续赋值运算
Mar 25 Javascript
myEvent.js javascript跨浏览器事件框架
Oct 24 Javascript
JavaScript 模式之工厂模式(Factory)应用介绍
Nov 15 Javascript
JS实现在网页中弹出一个输入框的方法
Mar 03 Javascript
浅析js绑定事件的常用方法
May 15 Javascript
JS实现n秒后自动跳转的两种方法
Nov 30 Javascript
vuejs动态组件给子组件传递数据的方法详解
Sep 09 Javascript
深入浅析JS是按值传递还是按引用传递(推荐)
Sep 18 Javascript
Vue keep-alive实践总结(推荐)
Aug 31 Javascript
Node.js Express安装与使用教程
May 11 Javascript
js面试题之异步问题的深入理解
Sep 20 Javascript
Vue实现指令式动态追加小球动画组件的步骤
Dec 18 Vue.js
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
人尽可用的Windows技巧小贴士之下篇
2007/03/22 PHP
PHP提交表单失败后如何保留已经填写的信息
2014/06/20 PHP
Yii2基于Ajax自动获取表单数据的方法
2016/08/10 PHP
jquery简单图片切换显示效果实现方法
2015/01/14 Javascript
javascript中checkbox使用方法简单实例演示
2015/11/17 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
jQuery网页定位导航特效实现方法
2016/12/19 Javascript
Bootstrap表单简单实现代码
2017/03/06 Javascript
es6中的解构赋值、扩展运算符和rest参数使用详解
2017/09/28 Javascript
js中apply和Math.max()函数的问题及区别介绍
2018/03/27 Javascript
浅析vue.js数组的变异方法
2018/06/30 Javascript
vue实现重置表单信息为空的方法
2018/09/29 Javascript
微信小程序解除10个请求并发限制
2018/12/18 Javascript
js prototype和__proto__的关系是什么
2019/08/23 Javascript
vue如何使用外部特殊字体的操作
2020/07/30 Javascript
vue+element_ui上传文件,并传递额外参数操作
2020/12/05 Vue.js
[05:28]刀塔密之一:团结则存
2014/07/03 DOTA
Python实现竖排打印传单手机号码易撕条
2015/03/16 Python
Python for Informatics 第11章 正则表达式(一)
2016/04/21 Python
详解django.contirb.auth-认证
2018/07/16 Python
selenium处理元素定位点击无效问题
2019/06/12 Python
django admin组件使用方法详解
2019/07/19 Python
opencv导入头文件时报错#include的解决方法
2019/07/31 Python
django xadmin中form_layout添加字段显示方式
2020/03/30 Python
Python库安装速度过慢解决方案
2020/07/14 Python
英国珠宝和手表专家:Pleasance & Harper
2020/10/21 全球购物
夜班门卫岗位职责
2013/12/09 职场文书
幼儿园保育员辞职信
2014/01/12 职场文书
四风问题自查报告剖析材料
2014/02/08 职场文书
中介业务员岗位职责
2014/04/09 职场文书
主持人演讲稿
2014/05/13 职场文书
还款承诺书范文
2014/05/20 职场文书
绿色校园广播稿
2014/10/13 职场文书
Python 读写 Matlab Mat 格式数据的操作
2021/05/19 Python
MySQL数据库 安全管理
2022/05/06 MySQL
html,css,javascript是怎样变成页面的
2023/05/07 HTML / CSS