1. 程式人生 > 實用技巧 >《JS 中普通函式和建構函式的區別》

《JS 中普通函式和建構函式的區別》

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

2、作用不一樣(建構函式用來新建例項物件);

3、呼叫方式不一樣。

  a. 普通函式的呼叫方式:直接呼叫 person();

  b.建構函式的呼叫方式:需要使用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、建構函式的執行流程

A、立刻在堆記憶體中建立一個新的物件

B、將新建的物件設定為函式中的this

C、逐個執行函式中的程式碼

D、將新建的物件作為返回值

7、普通函式例子:如無返回值,返回undefined;

    

    

8、建構函式例子:建構函式會馬上建立一個新物件,並將該新物件作為返回值返回

    

    

9、用instanceof 可以檢查一個物件是否是一個類的例項,是則返回true;所有物件都是Object物件的後代,所以任何物件和Object做instanceof都會返回true