JavaScript中普通函式和建構函式有什麼區別?
阿新 • • 發佈:2019-02-02
1 命名規則
建構函式名首字母一般大寫,普通函式名首字母一般小寫
2 呼叫規則
通過new操作符呼叫的則是建構函式,否則是普通函式
例:
//建立函式
function Fun(param){
this.param=param;
this.func=function(){
alert(this.param);
}
}
//當作建構函式使用
var Obj=new Fun('abc');//其中,Fun函式中的的this指向這個Obj物件
Obj.func();//'abc'
//當作普通函式使用
Fun('123');//其中,Fun函式中的的this指向window物件
window.func;//'123'
注:關於其中 函式中的this的指向問題,若該函式被用作物件中的方法(包括建構函式),則this指向呼叫該方法的物件,否則該函式被用作普通函式,this指向window物件(非嚴格模式下)或者其值為undefined(嚴格模式下)。具體請參考:https://blog.csdn.net/IT_10/article/details/81061226