1. 程式人生 > >JavaScript中普通函式和建構函式有什麼區別?

JavaScript中普通函式和建構函式有什麼區別?

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