《JS 中普通函式和建構函式的區別》
阿新 • • 發佈:2020-10-05
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