JS 中構造函數和普通函數的區別

1、構造函數也是一個普通函數,創建方式和普通函數一樣,但構造函數習慣上首字母大寫

2、構造函數和普通函數的區別在於:調用方式不一樣。作用也不一樣(構造函數用來新建實例對象)

3、調用方式不一樣

普通函數的調用方式:直接調用 person();

構造函數的調用方式:需要使用new關鍵字來調用 new Person();

4、構造函數的函數名與類名相同:Person( ) 這個構造函數,Person 既是函數名,也是這個對象的類名

5、內部用this 來構造屬性和方法

function Person(name,job,age){
    this.name=name;
    this.job=job;
    this.age=age;
    this.sayHi=function()
    {
        alert("Hi")
    }
}

6、構造函數的執行流程

立刻在堆內存中創建一個新的對象

將新建的對象設置爲函數中的this

逐個執行函數中的代碼

將新建的對象作爲返回值

7.普通函數例子:因爲沒有返回值,所以爲undefined

8、用instanceof 可以檢查一個對象是否是一個類的實例,是則返回true;所有對象都是Object對象的後代,所以任何對象和Object做instanceof都會返回true

class Child extends Father{

    // Child.__proto__=Father;
     constructor(name:string,age:number,money:number){
         super(name,age,money);
     }
     getName(){
        console.log(this.name);
     }
     getAge(){
        console.log(this.age);
    }
 }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章