例如如下的一段代碼,我想要得到的類型為
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>