isPrototypeOf,instanceof, hasOwnProperty,in的作用与区别
isPrototypeOf
作用:检测一个对象是否是另一个对象的原型。或者说一个对象是否被包含在另一个对象的原型链中
function Fn(name){
this.name=name;
}
var user=Object.create(Fn);//Object.create()方法创建一个新对象,使用现有的对象来提供新创建的对象的__proto__(即原型指向这个对象)。
console.log(Fn.isPrototypeOf(user)) //true var user1=new Fn('app');
console.log(Fn.prototype.isPrototypeOf(user1)) //true
instanceof
作用:检测一个对象是否是另一个对象的实例。
function Fn(name){
this.name=name;
}
var user1=new Fn('app');
console.log(user1 instanceof Fn) //true
hasOwnProperty
作用:对象的hasOwnProperty()方法用来检测给定的属性是否是对象的自由属性,如果是继承属性则返回false(可以用来剔除原型链上的属性)
function Fn(name){
this.name=name;
}
Fn.prototype.say="hello";
var user1=new Fn('app');
console.log(user1.hasOwnProperty('say')) //false 原型链上的属性不是对象自身的属性返回false
console.log(user1.hasOwnProperty('age')) //true 对象自身的属性返回true
循环打印出对象自身的属性
function Fn(name){
this.name=name;
}
Fn.prototype.say="hello";
var user1=new Fn('app');
//循环打印出对象自身的属性
for(var i=0 in user1){
if(user1.hasOwnProperty(i)){
console.log([i]+":"+user1[i]);//name:app
}
}
in
作用:判断对象的属性是自由属性还是原型链上的属性,如果对象的自由属性或者继承属性中包含这个属性则返回true。
function Fn(name){
this.name=name;
}
Fn.prototype.say="hello";
var user1=new Fn('app');
console.log('name' in user1) //true 对象自身的属性返回true
console.log('say' in user1) //true 对象原型上的属性返回true
isPrototypeOf,instanceof, hasOwnProperty,in的作用与区别的更多相关文章
- JS中isPrototypeOf 和hasOwnProperty 的区别 ------- js使用in和hasOwnProperty获取对象属性的区别
JS中isPrototypeOf 和hasOwnProperty 的区别 1.isPrototypeOf isPrototypeOf是用来判断指定对象object1是否存在于另一个对象object2的 ...
- 面向对象的程序设计(二)理解各种方法和属性typeof、instanceof、constructor、prototype、__proto__、isPrototypeOf、hasOwnProperty
//理解各种方法和属性typeof.instanceof.constructor.prototype.__proto__.isPrototypeOf.hasOwnProperty. //1.typeo ...
- tips instanceof运算符和typeof运算符的区别
tips instanceof运算符和typeof运算符的区别 一.instanceof运算符: 此运算符可以判断一个变量是否是某个对象(类)的实例,返回值是布尔类型的(true和fal ...
- java中instanceof和getClass()的作用
初学者难免有点混淆java中instanceof和getClass()的作用, 下面就来一一讲解. 父类A: class A { } 子类B: class B extends A { } 构造对象 ...
- 有关java反射的几个小方法的作用和区别
1.Class类中 getXXX()和getDeclaredXXX()的作用和区别: 前者获取某个类的所有公共(public)的字段(or方法or构造函数),包括父类.后者获取所有的字段(or方法or ...
- 基于Java的打包jar、war、ear包的作用与区别详解
本篇文章,小编为大家介绍,基于Java的打包jar.war.ear包的作用与区别详解.需要的朋友参考下 以最终客户的角度来看,JAR文件就是一种封装,他们不需要知道jar文件中有多少个.cla ...
- ubuntu sudo update与upgrade的作用及区别
ubuntu sudo update与upgrade的作用及区别 入门linux的同志,刚开始最迫切想知道的,大概一个是中文输入法,另一个就是怎么安装软件.本文主要讲一下LINUX安装软件方面的特点. ...
- BeanFactory和ApplicationContext的作用和区别
BeanFactory和ApplicationContext的作用和区别 作用: 1. BeanFactory负责读取bean配置文档,管理bean的加载,实例化,维护bean之间的依赖关系,负责be ...
- .h头文件和.c文件的作用和区别
.h头文件和.c文件的作用和区别 在小工程中,.h的作用没有得到充分的使用,在大工程中才能充分体现出.h文件的作用. .h和.c文件都是代码.头文件好处有: 一:头文件便于共享,只需要添加一句“inc ...
- (转)Java 之 FileReader FileInputStream InputStreamReader BufferedReader 作用与区别
Java 之 FileReader FileInputStream InputStreamReader BufferedReader 作用与区别 ava.io下面有两个抽象类:InputStream和 ...
随机推荐
- Spring MVC 探讨DispatcherServlet
先上DispatcherServlet的运行流程图(request processing):
- IntelliJ IDEA 统一设置编码为utf-8编码
问题一: File->Settings->Editor->File Encodings 问题二: File->Other Settings->Default Settin ...
- .Net C# 签名字符串排序
#region Get Sign Content /// <summary> /// Get Sign Content /// </summary> /// <param ...
- Advanced Installer 开始-程序那里增加,快捷方式、卸载软件、官方网站
. 这个是效果.
- 关于工作单元模式——工作单元模式与EF结合的使用
工作单元模式往往和仓储模式一起使用,本篇文章讲到的是工作单元模式和仓储模式一起用来在ef外面包一层,其实EF本身就是工作单元模式和仓储模式使用的经典例子,其中DbContext就是工作单元,而每个Db ...
- LeetCode:197.上升的温度
题目链接:https://leetcode-cn.com/problems/rising-temperature/ 题目 给定一个 Weather 表,编写一个 SQL 查询,来查找与之前(昨天的)日 ...
- 利用css伪类选择器hover控制两个元素属性
示例1: <html> <body> <style> #a:hover {color : #FFFF00;} #a:hover > #b:first-chil ...
- 简单SQL注入试探、一
DVWA——简单SQL注入小记 前不久刚开始接触SQL注入,今天来记录一些最近的一些收获和一些SQL注入方面的知识. 主要是基于DVWA这个开源的平台来进行练习. 废话不多说开始解题. 从简单的SQL ...
- LLVM新建全局变量
在LLVM中,有原生的AST Clone,却没有一个比较好的Stmt copy功能,基于Scout在LLVM上进行的修改,我们实现了自己的Stmt Clone功能. 要进行Stmt Clone,肯定需 ...
- web应用原理之——会话
会话是大家开发Java EE Web应用的常用技术,那么会话是什么,会话的用途还有工作原理又是什么,下面就简单说一说. 什么是会话,在web应用中,作为客户端的浏览器,通过请求/响应这种模式访问同一个 ...