1.hasOwnProperty():用来检测对象中是否包含给出的函数属性或者对象,但是无法检测出对象的原型链中是否包含给出的属性或对象--该属性或者对象必须在函数内部被声明

2.isPrototypeof():检查对象的原型链中是否包含给定的属性或者对象

  1. <script>
  2. function f1 (age,sex) {
  3. this.age = age;
  4. this.sex = name;
  5. }
  6. f1.prototype.show = function() {
  7. alert('one');
  8. };
  9. f1.prototype.getage = function() {
  10. alert(this.age);
  11. };
  12.  
  13. var k1 = new f1("12","men");
  14. var k2 = new f1("11","women");
  15.  
  16. //alert(k1.hasOwnProperty('show'));//false
  17. //alert(k1.hasOwnProperty('age'));//ture
  18. //alert(f1.prototype.isPrototypeOf(k1));//true
  19. //alert(f1.prototype.isPrototypeOf(k2));//false
  20. //alert(f1.prototype.hasOwnProperty('show'));//true
  21. //alert(f1.prototype.hasOwnProperty('age'));//false
  22. </script>

例子:

  1. <script>
  2.  
  3. // 对象
  4. var man = {
  5. hands: 2,
  6. legs: 2,
  7. heads: 1
  8. };
  9.  
  10. // 在代码的某个地方
  11. // 一个方法添加给了所有对象
  12. if (typeof Object.prototype.clone === "undefined") {
  13. Object.prototype.clone = function () {};
  14. }
  15.  
  16. for (var i in man) {
  17. if (man.hasOwnProperty(i)) { // 过滤
  18. console.log(i, ":", man[i]);
  19. }
  20. }
  21.  
  22.  </script>

火狐控制台输出

  1. hands : 2
  2. legs : 2
  3. heads : 1
  1. for (var i in man) {
  2. console.log(i, ":", man[i]);
  3. }

输出

  1. hands : 2
  2. legs : 2
  3. heads : 1
  4. clone: function()
  1. for (var i in man) {
  2. if (Object.prototype.hasOwnProperty.call(man, i)) { // 过滤
  3. console.log(i, ":", man[i]);
  4. }
  5. }//main调用了Object.prototype.hasOwnProperty

输出

  1. hands : 2
  2. legs : 2
  3. heads : 1

一个实例:

  1. <script>
  2.  
  3. var Person = function () {
  4. this.name = "abc";
  5. };
  6.  
  7. Person.prototype.sayname = function () {
  8. alert(this.name);
  9. }
  10. var p = new Person();
  11. //实例对象检测
  12. console.log(p.hasOwnProperty('sayname')); //false
  13. console.log(p.hasOwnProperty('name')); //true
  14. //原型对象检测
  15. console.log(Person.prototype.isPrototypeOf(p)); //true
  16. //实例对象或者原型对象都可以
  17. console.log('sayname' in p); //true
  18. console.log('name' in p); //true
  19.  
  20. </script>

javascript--hasOwnProperty()+isPrototypeof()+in方法的更多相关文章

  1. javascript 中isPrototypeOf 、hasOwnProperty、constructor、prototype等用法

    hasOwnProperty:是用来判断一个对象是否有你给出名称的属性或对象,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员. isPrototypeOf是用来判断要检查 ...

  2. javascript的isPrototypeOf函数的理解

    JavaScript中isPrototypeOf函数方法是返回一个布尔值,指出对象是否存在于另一个对象的原型链中.使用方法: object1.isPrototypeOf(object2)~~~原型链理 ...

  3. JavaScript中isPrototypeOf函数

    转自:http://www.ijavascript.cn/shouce/javascript-isprototypeof-247.html JavaScript中 isPrototypeOf 函数方法 ...

  4. Javascript创建对象几种方法解析

    Javascript创建对象几种方法解析 Javascript面向对象编程一直是面试中的重点,将自己的理解整理如下,主要参考<Javascript高级程序设计 第三版>,欢迎批评指正. 通 ...

  5. Android和JavaScript相互调用的方法

    转载地址:http://www.jb51.net/article/77206.htm 这篇文章主要介绍了Android和JavaScript相互调用的方法,实例分析了Android的WebView执行 ...

  6. JavaScript document属性和方法

    JavaScript document属性和方法 --------------------------------------------属性: 1. Attributes     存储节点的属性列表 ...

  7. 将JavaScript 插入网页的方法

    将JavaScript 插入网页的方法 使用Javascript代码. 插入JavaScript 与在网页中插入CSS的方式相似.使用下面的代码可以在网页中插入JavaScript: ... 其中的. ...

  8. JavaScript常用对象的方法和属性

    ---恢复内容开始--- 本文将简单介绍JavaScript中一些常用对象的属性和方法,以及几个有用的系统函数. 一.串方法 JavaScript有强大的串处理功能,有了这些串方法,才能编写出丰富多彩 ...

  9. js 判断数组包含某值的方法 和 javascript数组扩展indexOf()方法

    var  questionId = []; var anSwerIdValue = []; ////javascript数组扩展indexOf()方法 Array.prototype.indexOf ...

  10. Javascript调用C#后台方法及JSon解析

    Javascript调用C#后台方法及JSon解析   如何使用Ajax 调用C# 后台方法. 本文目录 如何使用Ajax 调用C# 后台方法. 1.后台(.cs)测试方法 2.前台调用(javasc ...

随机推荐

  1. 关于window.location.href="delete_emp.do?id"+id;

    ?后面是参数 ?id 就是带参发送这个请求 参数就是id  后面的 +id 貌似 是值

  2. FusionCharts 分类以及各个属性参数列表

    <FusionCharts学习及使用笔记>之 第一篇 其实一直以来我都在有意无意的把我平常工作中遇到并解决的问题做个记录,放到我的网易博客中.但却一直没有想过如何把我使用的技术做一个系列化 ...

  3. Angular中ngModel的$render的详解

    在我开始着手ngModel的领域时候,有一个问题很令我纠结,那就是$render()到底是做什么的呢?查了很多资料都只是简单的描述一下,这就令我很纠结了,终于在一个阳光明媚的晚上,我终于解决了这个大问 ...

  4. POJ 2155 Matrix(二维树状数组)

    与以往不同的是,这个树状数组是二维的,仅此而已 #include <iostream> #include <cstdio> #include <cstring> # ...

  5. HDU 5521 Meeting

    2015 ACM / ICPC 沈阳站现场赛 M题 最短路 设置N+M个节点,前N个节点是Block,后M个节点是Set,每一组Set中的点向该Set连边,从1和n开始分别求最短路.注意爆int. # ...

  6. 由于 web 服务器上此资源的访问控制列表(acl)配置或加密设置,您无权查看此目录或页面。

    场景:IIS中遇到无法预览的有关问题(HTTP 异常 401.3 - Unauthorized 由于 Web 服务器上此资源的访问控制列表(ACL)配置或加密设置 IIS中遇到无法预览的问题(HTTP ...

  7. 疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条

    http://blog.csdn.net/terryzero/article/details/3797782 疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条 标签: swing编程 ...

  8. Android学习笔记之ContentProvider

    读取其他应用程序共享的数据 以下示例为读取联系人信息 package com.jiahemeikang.helloandroid; import com.jiahemikang.service.Ech ...

  9. php中var_dump() 打印出一个对象的时候,信息怎么看?

    php 的一个依赖注入容器, 说白了,就是用php 的反射类,来在运行的时候动态的分析类具有的函数,以及动态分析函数的参数, 从而实例化类,并执行类的方法. 另外,php 中的 typehint 还是 ...

  10. arcengine C#关于动态添加图层

    动态加载影像图层为例 研究了两三天算是弄出来了.本例适合影像数据量特别的大程序使用,可以动态的添加删除影像数据,还有不完善的地方,不过基本满足要求. 1.首先得到关键点的图层 m_Map = axMa ...