JavaScript-获取对象类型
例如如下的一段代码,我想要得到的类型为 object
。
let obj = new Object();
如下的代码我想要得到的类型为 Array
。
let arr = new Array();
如下的代码我想要得到的类型为 Person
。
let p = new Person();
通过我前面所介绍的内容知道可以利用一个关键字 typeof
来进行获取代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JavaScript-获取对象类型</title>
<script>
let obj = new Object();
console.log(typeof obj);
let arr = new Array();
console.log(typeof arr);
function Person() {
this.name = "BNTang";
this.age = 34;
this.say = function () {
console.log(this.name, this.age);
}
}
let p = new Person();
console.log(typeof p);
</script>
</head>
<body>
</body>
</html>
通过如上的运行结果发现全是 object
要想知道为什么其实也很简单,在我们使用构造函数创建对象的时候其实内部会自动的创建一个 object 实例赋值给 this
然后返回 this
所以获取的就都是 object 了。
如果想要运行的结果和我文章开始所说的类型一致的话可以通过 constructor
中的一个 name
来实现改造的代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JavaScript-获取对象类型</title>
<script>
let obj = new Object();
console.log(typeof obj);
let arr = new Array();
console.log(arr.constructor.name);
function Person() {
this.name = "BNTang";
this.age = 34;
this.say = function () {
console.log(this.name, this.age);
}
}
let p = new Person();
console.log(p.constructor.name);
</script>
</head>
<body>
</body>
</html>