函數(shù)是JavaScript世界里的第一公民,換句話來說,就是我們?nèi)绻梢跃↗avaScript函數(shù)的使用,那么對JavaScript的運用可以更游刃有余了。熟悉JavaScript的人應該都知道,同樣的函數(shù),以不同的方式調(diào)用的話,受影響最大的應該是  this 。下面我們來說說JavaScript函數(shù)的各種調(diào)用模式。

一、普通函數(shù)的調(diào)用模式

  所謂普通函數(shù)的調(diào)用模式,也是JavaScript函數(shù)的最簡單的一種調(diào)用模式,直接就是函數(shù)名后接一個  ()  實現(xiàn)調(diào)用,看下面代碼:

function func(){
    console.log(this === window);  //true
}
func();

  上面代碼,我們用function關鍵字聲明了一個 func 函數(shù),并且在函數(shù)體內(nèi)打印 this===window,然后我們直接調(diào)用函數(shù)func,我們可以看到控制臺是直接打印出 true ,也就是說,函數(shù)的這種普通調(diào)用模式,函數(shù)體內(nèi)的  this  是指向全局環(huán)境 window 的。不清楚這點的同學,可以能會遇到這樣的一個bug:

iOS培訓,Swift培訓,蘋果開發(fā)培訓,移動開發(fā)培訓

var color = 'gg';var obj = {
    color : 'red',
    show : function(){        function func1(){
            console.log(this.color);  //gg
        }
        func1();
    }

        
		

網(wǎng)友評論