天天看點

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>      
JavaScript-擷取對象類型

通過如上的運作結果發現全是 ​

​object​

​​ 要想知道為什麼其實也很簡單,在我們使用構造函數建立對象的時候其實内部會自動的建立一個 object 執行個體指派給 ​

​this​

​​ 然後傳回 ​

​this​

​ 是以擷取的就都是 object 了。

JavaScript-擷取對象類型

如果想要運作的結果和我文章開始所說的類型一緻的話可以通過 ​

​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>      
JavaScript-擷取對象類型

繼續閱讀