構造函數

/*
             * 建立一個構造函數,專門用來建立Person對象的
             *     構造函數就是一個普通的函數,建立方式和普通函數沒有區別
             *     不一樣的是構造函數習慣上首字母大寫
             * 
             * 
             * 構造函數和普通函數的區別就是調用方式的不一樣
             *     普通函數是直接調用,而構造函數須要使用new關鍵字來調用
             * 
             * 構造函數的執行流程;
             *     1.馬上建立一個新的對象
             *     2.將新建的對象設置爲函數中的this,再構造函數中能夠使用this來引用新建的對象
             *     3.逐行執行函數中的代碼
             *     4.將新建的對象做爲返回值返回
             * 
             * 使用同一個構造函數建立的對象,咱們成爲一類對象,也將一個構造函數成爲一個類
             *     咱們將經過一個構造函數建立的對象,稱爲該類的實例
             * 
             * this的狀況:
             *         1.當以函數的形式調用時,this是window
             *         2.當以方法的形式調用時,誰調用方法this就是誰
             *         3.當以構造函數的形式調用時,this就是新建立的那個對象
             * 
             */
            function Person(name,age,gender){
                this.name = name;
                this.age = age;
                this.gender = gender;
                this.sayName = function(){
                    alert(this.name);
                };
            }
            
            function Dog(){
                
            }
            
            
            var per = new Person("孫悟空",18,"男");
            var per2 = new Person("玉兔精",16,"女");
            var per3 = new Person("奔波霸",38,"男");
            
            var dog = new Dog();
            
            /*console.log(per);
            console.log(dog);*/
            
            /*
                 使用instanceof能夠檢查一個對象是不是一個類的實例
                   語法:
                        對象instanceof 構造函數
                 若是是則返回true,不然返回false
             * */
            //console.log(per instanceof Person);
            //console.log(dog instanceof Person);
            
            /*
                 全部的對象都是Object的後代
                     因此任何對象和Object作instanceof檢查時都會返回true
                     
             * */
            
            console.log(per instanceof Object);函數

        

疑問點:參考犀牛書。this

相關文章
相關標籤/搜索