在写代码的过程中 我们经常会遇到这样一个问题–如何获得某一个对象的类型名。
JavaScript是一种弱类型的语言,通常,我们获取一个对象的类型名会想到typeof方法。但是,当我们想要获得一个自定义类型的兑现的类型名的时候,typeof就有点不够看了。我们先来做一个简单的测试。
<!DOCTYPE html>
<html><head>
<script>
/*一个叫做Student的构造函数*/
function Student (argument) {
// body...
}
/*new一个Student对象*/
var stu = new Student("argument");
console.log(typeof stu);
/*控制台打印的结果是:object*/
</script>
</head>
<body></body></html>
我们虽然知道了stu是一个对象,但是我们却不知道它究竟是一个怎样的对象,所以我们还需要更深层次的处理。
那到底需要怎么做呢?我们知道,在js里,每一个对象都有一个constructor的属性,这个属性直接连接到该对象的构造函数。也就是说,我们可以通过对象的constructor属性来找到它所对应的构造函数。先来看一段代码:
<!DOCTYPE html>
<html><head>
<script>
/*一个叫做Student的构造函数*/
function Student (argument) {
// body...
}
/*new一个Student对象*/
var stu = new Student("argument");
/*这里改成了constructor*/
console.log(stu.constructor);
/*
* 控制台打印结果:
* function Student(argument) {
* // body...
* }
*/
</script>
&l