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和 ...
 
随机推荐
- 刚接触neo4j 问下 neo4j 生成的节点图形可以发布为纯网页方式么
			
6 回复 pangguoming 1楼•3 年前 你是想要neo4j web控制端的可视化功能吗? 那是用D3.js 做的,你用前端用D3.js配合Java自己做 或者 去下载neo4j 的前端 开源 ...
 - Nopcommerce 项目添加插件
			
插件是用来扩展nopCommerce功能的.nopCommerce拥有多种类型的插件.例如:支付方式(PayPal),税务机构,送货方式计算方法(UPS, USP, FedEx),小部件(如“在线聊天 ...
 - Batch normalization简析
			
Batch normalization简析 What is batch normalization 资料来源:https://www.bilibili.com/video/av15997678/?p= ...
 - Javascript的学习清单
			
Javascript的学习清单 Javascript学习资源 程序员必读书籍 深入理解JavaScript系列 es6教程 jQuery中文文档 vue官网 zeptojs中文版 常用的插件与UI组件 ...
 - splice与slice区别
			
共同点:均是删除数组元素并返回结果. 区别:splice会改变原数组,而slice不会.并且splice会导致数组塌陷. 数组塌陷:使用splice删除元素时,剩余的数组元素索引的顺讯会改变. let ...
 - NPOI 将excel转换为datatable或者将datatable转换为excel
			
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
 - 记一次线上dubbo服务超时和线程池满问题排查
			
线上某dubbo服务A调用dubbo服务B的接口X方法,调用端A日志中出现了很多超时的情况,提供端B该接口X超时时间设置为60s: 查看提供端B的日志,报了很多线程池满的异常: Caused by: ...
 - opencv读取图像python和c++版本的结果不同
			
问题: 在读取同一张图像时,python读取的结果和c++读取的结果差异较大,测试图像中最大误差达到16. 原因: python的opencv采用的是4.1.1,c++采用的是3.1.0,在解析JPE ...
 - VSCODE IDE开发工具的快捷键一览
			
按 Press 功能 Function Ctrl + Shift + P,F1 显示命令面板 Show Command Palette Ctrl + P 快速打开 Quick Open Ctrl + ...
 - Educational Codeforces Round 37 (Rated for Div. 2)C. Swap Adjacent Elements (思维,前缀和)
			
Educational Codeforces Round 37 (Rated for Div. 2)C. Swap Adjacent Elements time limit per test 1 se ...