理顺 JavaScript (14) - constructor 与 instanceof
2021/4/29 22:25:28
本文主要是介绍理顺 JavaScript (14) - constructor 与 instanceof,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
理顺 JavaScript (14) - constructor 与 instanceof
重看前面的例子: 明明是个函数, 怎么就成了对象?
function MyObj(a, b) { this.x = a; this.y = b; } var obj = new MyObj(11, 22); alert(obj.x); //11 alert(obj.y); //22 alert(typeof obj); //object //一个对象的建立要通过构造函数, 有了构造函数就不难成为对象; //用 new 关键字调用函数, JavaScript 就会建立一个对象, 并把该函数当作对象的构造函数. //这就像 String 类的构造函数是 String()、Array 类的建立函数是 Array() ...
每个类的构造函数的名称肯定不一样, 但可以用 constructor 泛指它们
var str = new String(); alert(str.constructor); /* 将会输出如下: function String() { [native code] } 不过它没给我们看到具体的实现代码, 只有自定义的才会看到 */ var arr = new Array(); alert(arr.constructor); /* 将会输出如下: function Array() { [native code] } */ function MyObj(a, b) { this.x = a; this.y = b; } var obj = new MyObj(11, 22); alert(obj.constructor); /* 将会输出如下: function MyObj(a, b) { this.x = a; this.y = b; } */
判断一个对象所属的类(方法一)
//通过上面手段, 可以判断一个对象到底是属于哪一个类 var str, arr, s; str = new String(); alert(str.constructor == String); //true arr = new Array(); alert(arr.constructor == Array); //true /* 但这会有个问题, 譬如一个不是对象的字符串也会返回 true */ s = 'ABC'; alert(s.constructor == String); //true //解决这个问题当然可以再加条件, 但不如直接用下一个方法
判断一个对象所属的类(方法二: 使用 instanceof 关键字)
var str, arr, str; str = new String(); alert(str instanceof String); //true arr = new Array(); alert(arr instanceof Array); //true str = 'ABC'; alert(str instanceof String); //false /* 但这也会有个问题, 因为 Object 是所有类的祖先 ... */ str = new String(); alert(str instanceof Object); //true
这篇关于理顺 JavaScript (14) - constructor 与 instanceof的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign学习入门:轻松掌握微服务通信
- 2024-12-27OpenFeign学习入门:轻松掌握微服务间的HTTP请求
- 2024-12-27JDK17新特性学习入门:简洁教程带你轻松上手
- 2024-12-27JMeter传递token学习入门教程
- 2024-12-27JMeter压测学习入门指南
- 2024-12-27JWT单点登录学习入门指南
- 2024-12-27JWT单点登录原理学习入门
- 2024-12-27JWT单点登录原理学习入门