hasOwnProperty和isPrototypeOf
hasOwnProperty:是用来判断一个对象是否有你给出名称的属性或对象,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员。
isPrototypeOf是用来判断要检查其原型链的对象是否存在于指定对象实例中,是则返回true,否则返回false。
in 操作检查对象中是否有名为 property 的属性。也可以检查对象的原型,判断该属性是否为原型链的一部分.
Java代码 复制代码
hasOwnProperty:
var obj = {a:1,b:2}
obj.hasOwnProperty('a')   isPrototypeOf:
function F(){}
var fn = new F()
F.prototype.isPrototypeOf(fn)
前者是判断对象中是否存在某个属性,后者是判断对象是否是原型链的对象。
那么isPrototypeO与instanceof又有什么区别?
Java代码 复制代码
function A () {   this.a = 1;
}
function B () {   this.b = 2;
}
B.prototype = new A();
B.prototype.constructor = B;   function C () {   this.c = 3;
}
C.prototype = new B();
C.prototype.constructor = C;   var c = new C();   // instanceof expects a constructor function   

c instanceof A; // true
c instanceof B; // true
c instanceof C; // true   // isPrototypeOf, can be used on any object
A.prototype.isPrototypeOf(c); // true
B.prototype.isPrototypeOf(c); // true
C.prototype.isPrototypeOf(c); // true
一段英文说明:
The difference between both is what they are, and how you use them, e.g. the isPrototypeOf is a function available on the Object.prototype object, it lets you test if an specific object is in the prototype chain of another, since this method is defined on Object.prototype, it is be available for all objects.
instanceof is an operator and it expects two operands, an object and a Constructor function, it will test if the passed function prototype property exists on the chain of the object (via the [[HasInstance]](V) internal operation, available only in Function objects).
[color=blue]
再来看代码:
Java代码 复制代码
var a = [];
Array.prototype.isPrototypeOf(a) //true
a instanceof Array               //true
明显却别是:instanceof是一个操作符。isPrototypeOf是一个函数。

posted on 2013-04-11 14:20 Spider024 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/spider024/archive/2013/04/11/3014426.html

hasOwnProperty和isPrototypeOf相关推荐

  1. js中的hasOwnProperty和isPrototypeOf方法

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

  2. JavaScript基本概念——数据类型

    What doesn't kill you makes you stronger. ECMAScript数据类型 ECMAScript 中有5种简单(基本)数据类型:Undefined.Null.Bo ...

  3. javascript之基本概念

    为什么80%的码农都做不了架构师?>>>    1. 语法 1.1 匹配大小写 javascript中的一切--变量,函数名和操作符--都是区分大小写的. 1.2 标识符 标识符就是 ...

  4. javaScript原型及继承

    一.浅谈原型 首先我们要知道创建对象的方法有两种: 1.通过字面量的方式直接创建 1 var obj = { 2 name:'baimao', 3 age:21 4 } 2.通过构造函数创建对象 1 ...

  5. javascript开发后端程序的神器nodejs

    文章目录 简介 nodejs的历史 nodejs简介 nodejs的运行环境 process 终止进程 env argv CLI交互 exports模块 nodejs API nodejs的框架 简介 ...

  6. javascript 核心概念(1)-数据类型

    语法 (1)到现在为止,大多数浏览器也还是支持到ECMAScript 第三版的标准. 核心概念就是一个语言的基本工作原理,涉及语法,操作符,数据类型. (2)javascript的一切--变量,函数名 ...

  7. javascript一些底层方法总结及用法

    本地对象:ECMA-262 把本地对象(native object)定义为"独立于宿主环境的 ECMAScript 实现提供的对象".简单来说,本地对象就是 ECMA-262 定义 ...

  8. 爱彼迎JavaScript 风格指南

    Types 基本类型: 你可以直接获取到基本类型的值 string number boolean null undefined symbol 复杂类型: 复杂类型赋值是获取到他的引用的值. 相当于传引 ...

  9. 基本概念---part5

    今天我们要正式的开始学习Object类型 Object类型又称为对象类型,不仅仅只是在js中有对象类型,其他的语言里面也有对象类型,但是JS中的对象其实就是一组数据和功能的集合,那么我们要怎么创建一个 ...

最新文章

  1. python 列表、字典转json字符串
  2. 如何查看和关闭异常SQL进程
  3. oracle基础教程实验,Oracle 11g 基础教程与实验指导(配光盘)(清华电脑学堂)
  4. 进行SEPM的灾难恢复时导入数据库后,Symantec Endpoint Protection Manager(SEPM)无法登陆...
  5. Pointcut is not well-formed: expecting #39;name pattern#39; at character position 36
  6. 23种设计模式之装饰模式
  7. 格力又有新专利了:“一种铁芯冲片、电机及新能源汽车”
  8. java 大型互联网架构_分享一些大型互联网架构常用的高端技术
  9. 供应链B2B项目一直赚不到钱
  10. 部署模型之Libtorch学习(一)
  11. Memcache与Redis的区别
  12. GooFlow入门使用
  13. 3.3Packet Tracer - 实施基本连接
  14. 【操作系统】第十一章-多媒体操作系统
  15. 决策树Gini系数计算过程详细解答
  16. Leach协议的实现
  17. 磁盘空间满问题排查方法
  18. Elasticsearch 滞后8个小时等时区问题,一网打尽!
  19. Mac下安装Homebrew
  20. python+selenium安装,自动化测试环境搭建

热门文章

  1. a java虚拟机_Java虚拟机
  2. mysql多数据源切换_CI 多数据库操作 切换数据库
  3. stm32使用DAP下载程序
  4. 工程用计算机是什么样子的,【2人回答】学软件工程的应该买什么样的处理器电脑?-3D溜溜网...
  5. java字节流分为_Java文件流可分为字节流和字符流。
  6. IDEA运行VUE npm install报错:chromedriver@2.27.2 install: node install.js
  7. php连接oracle很慢是什么原因_通过DB LINK插入速度很慢的问题
  8. MySQL字符串类型
  9. php7开发的项目怎么样,如何在PHP7项目中搭建一个多线程
  10. 没有bug队——加贝——Python 57,58