instanceof

JavaScript 面向对象编程(一)---- 创建对象

橙三吉。 提交于 2020-02-16 23:48:52
一、万物皆对象 JavaScript 的所有数据类型都可以看成对象,所以我们常说 JavaScript 中万物皆对象。 在 JavaScript 中,对象是一个泛化的概念,任何值都可以转换为对象,以对象的方式进行使用。如数字对象、布尔值对象、字符串对象、函数对象、数组对象等等,它们都继承 Object 类型对象。同时, JavaScript 也允许自定义对象。 const num = new Number ( 1 ) ; console . log ( typeof num ) ; // object const str = new String ( 'hello' ) ; console . log ( typeof str ) ; // object const d = new Array ( ) ; console . log ( typeof d ) ; // object const obj = new Object ( ) ; console . log ( typeof obj ) ; // object 面向对象( Object-Oriented,OO )的语言有一个标志,那就是它们都有类的概念。通过类可以创建任意多个具有相同属性和方法的对象。 但 JavaScript 的面向对象编程和大多数其他语言(如 Java )都不太一样。在 ECMAScript6 规范之前

Java中的二元操作符:instanceof

假如想象 提交于 2020-02-14 14:11:03
Java中的二元操作符:instanceof 判断一个引用类型的变量所指向的对象是否是一个类(或者接口、抽象类、父类)的实例,即它左边的对象是否是它右边的类的实例,该运算返回boolean类型的数据。 格式: result = object instanceof class; 注:如果object是null,返回false 来源: CSDN 作者: Mason97 链接: https://blog.csdn.net/Mason97/article/details/104308990

js使用typeof与instanceof相结合编写一个判断常见变量类型的函数

拟墨画扇 提交于 2020-02-12 22:19:11
/** * 常见类型判断 * @param {any} param */ function getParamType(param) { // 先判断是否能用typeof 直接判断 let types1 = ['number', 'string', 'boolean', 'undefined', 'symbol', 'function'] let type = typeof param; type = types1.indexOf(type); if (type !== -1) { return types1[type] } // 剩余的用instanceof判断 switch (true) { case param instanceof Date: return 'date' case param instanceof Array: return 'array' case param instanceof Object: return 'object' case null === param && !param: return 'null' default: return 'can not judge' } } console.log(getParamType(1)); // number console.log(getParamType('1')); // string

原型链的理解

怎甘沉沦 提交于 2020-02-09 18:31:21
原型链 本文将从将从什么是原型链,原型链的主要作用,以及函数和对象之间的关系,继承来说。 什么是原型链? 实例对象和原型对象之间形成的链式结构。 原型的主要作用是什么? 数据共享,实现继承 函数和对象的神秘之处 函数属于对象 function fn(){ console.log(123); } console.log(fn instanceof Object); + 上面的代码结果是true。可以证明函数是对象的一种。我们经常又说对象都是函数创建的,在这我来做个解释,这俩句话并不冲突。我们创建对象的时候可以通过构造函数实例化,new Object(),new Array()等方式。 对象是由函数创建出来的 ``` //var obj = { a: 10, b: 20 }; //var arr = [5, 'x', true]; var obj = new Object(); obj.a = 10; obj.b = 20; var arr = new Array(); arr[0] = 5; arr[1] = 'x'; arr[2] = true; + 而Object和Array又是函数 console.log(typeof (Object)); // function console.log(typeof (Array)); // function ``` 既证明了函数是对象

Java中的instanceof关键字

心已入冬 提交于 2020-02-09 05:39:03
instanceof是Java的一个二元操作符,和==,>,<是同一类东东。由于它是由字母组成的,所以也是Java的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。举个例子:   String s = "I AM an Object!";   boolean isObject = s instanceof Object;   我们声明了一个String对象引用,指向一个String对象,然后用instancof来测试它所指向的对象是否是Object类的一个实例,显然,这是真的,所以返回true,也就是isObject的值为True。   instanceof有一些用处。比如我们写了一个处理账单的系统,其中有这样三个类:   public class Bill {//省略细节}   public class PhoneBill extends Bill {//省略细节}   public class GasBill extends Bill {//省略细节}   在处理程序里有一个方法,接受一个Bill类型的对象,计算金额。假设两种账单计算方法不同,而传入的Bill对象可能是两种中的任何一种,所以要用instanceof来判断:   public double calculate(Bill bill) {   if (bill

Java关键字(一)——instanceof

孤街浪徒 提交于 2020-02-09 05:37:56
目录 1、obj 必须为引用类型,不能是基本类型 2、obj 为 null 3、obj 为 class 类的实例对象 4、obj 为 class 接口的实现类 5、obj 为 class 类的直接或间接子类 6、问题 7、深究原理 8、instanceof 的实现策略   instanceof 严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例,用法为: 1 boolean result = obj instanceof Class   其中 obj 为一个对象,Class 表示一个类或者一个接口,当 obj 为 Class 的对象,或者是其直接或间接子类,或者是其接口的实现类,结果result 都返回 true,否则返回false。   注意:编译器会检查 obj 是否能转换成右边的class类型,如果不能转换则直接报错,如果不能确定类型,则通过编译,具体看运行时定。 回到顶部 1、obj 必须为引用类型,不能是基本类型 1 2 3 int i = 0 ; System.out.println(i instanceof Integer); //编译不通过 System.out.println(i instanceof Object); //编译不通过   instanceof 运算符只能用作对象的判断。 回到顶部 2、obj 为 null 1 System

Java关键字(一)——instanceof

雨燕双飞 提交于 2020-02-09 05:37:23
  instanceof 严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例,用法为: boolean result = obj instanceof Class   其中 obj 为一个对象,Class 表示一个类或者一个接口,当 obj 为 Class 的对象,或者是其直接或间接子类,或者是其接口的实现类,结果result 都返回 true,否则返回false。   注意:编译器会检查 obj 是否能转换成右边的class类型,如果不能转换则直接报错,如果不能确定类型,则通过编译,具体看运行时定。 1、obj 必须为引用类型,不能是基本类型 int i = 0; System.out.println(i instanceof Integer);//编译不通过 System.out.println(i instanceof Object);//编译不通过   instanceof 运算符只能用作对象的判断。 2、obj 为 null System.out.println(null instanceof Object);//false   关于 null 类型的描述在官方文档: https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.1 有一些介绍

binder的异常处理

ぐ巨炮叔叔 提交于 2020-02-05 19:06:36
binder的异常处理真的很捉急,一开始我以为RemoteException可以跨进程交互,之后看了资料和源码才知道,RemoteException根本就支持跨进程传递 在Parcel.java源码注明了可以传递的几种异常 public final void writeException ( Exception e ) { int code = 0 ; if ( e instanceof Parcelable && ( e . getClass ( ) . getClassLoader ( ) == Parcelable . class . getClassLoader ( ) ) ) { // We only send Parcelable exceptions that are in the // BootClassLoader to ensure that the receiver can unpack them code = EX_PARCELABLE ; } else if ( e instanceof SecurityException ) { code = EX_SECURITY ; } else if ( e instanceof BadParcelableException ) { code = EX_BAD_PARCELABLE ; } else if ( e

多态(Java)

戏子无情 提交于 2020-02-04 17:43:51
多态(Java) 一、多态 1、什么是多态? 不同的对象对于同一个操作,做出的响应不同 具有表现多种形态的能力的特征 2、使用多态的优点 : 为了实现统一调用 二、子类到父类的转换(向上转型) ① 将一个父类的引用指向一个子类对象,成为向上转型,自动进行类型转换 ② 此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,不是父类的方法 ③ 通过父类引用变量无法调用子类特有的方法 三、java中两种实现和使用多态的方式 ① 使用父类作为方法形参 ② 使用父类作为方法返回值 四、父类到子类的转换(向下转型) 将一个指向子类对象的父类引用赋给一个子类的引用,称为向下转型。此时必须进行强制类型转换 五、instanceof运算符 语法: 对象 instanceof 类或接口 该运算符用来判断一个对象是否属于一个类或者实现了一个接口,结果为true或false 注: ① 使用instanceof运算符时,对象的类型必须和instanceof的第二个参数所指定的类或接口在继承树上有上下级关系,否则会出现编译错误 ② instanceof通常和强制类型转换结合使用 一、多态 1、什么是多态? 不同的对象对于同一个操作,做出的响应不同 具有表现多种形态的能力的特征 2、使用多态的优点 : 为了实现统一调用 二、子类到父类的转换(向上转型) ① 将一个父类的引用指向一个子类对象,成为向上转型