函数是JavaScript世界里的第一公民,换句话来说,就是我们如果可以精通JavaScript函数的使用,那么对JavaScript的运用可以更游刃有余了。熟悉JavaScript的人应该都知道,同样的函数,以不同的方式调用的话,受影响最大的应该是  this 。下面我们来说说JavaScript函数的各种调用模式。

一、普通函数的调用模式

  所谓普通函数的调用模式,也是JavaScript函数的最简单的一种调用模式,直接就是函数名后接一个  ()  实现调用,看下面代码:

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

  上面代码,我们用function关键字声明了一个 func 函数,并且在函数体内打印 this===window,然后我们直接调用函数func,我们可以看到控制台是直接打印出 true ,也就是说,函数的这种普通调用模式,函数体内的  this  是指向全局环境 window 的。不清楚这点的同学,可以能会遇到这样的一个bug:

iOS培训,Swift培训,苹果开发培训,移动开发培训

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