函数是JavaScript世界里的第一公民,换句话来说,就是我们如果可以精通JavaScript函数的使用,那么对JavaScript的运用可以更游刃有余了。熟悉JavaScript的人应该都知道,同样的函数,以不同的方式调用的话,受影响最大的应该是 this 。下面我们来说说JavaScript函数的各种调用模式。
一、普通函数的调用模式
所谓普通函数的调用模式,也是JavaScript函数的最简单的一种调用模式,直接就是函数名后接一个 () 实现调用,看下面代码:
function func(){ console.log(this === window); //true } func();
上面代码,我们用function关键字声明了一个 func 函数,并且在函数体内打印 this===window,然后我们直接调用函数func,我们可以看到控制台是直接打印出 true ,也就是说,函数的这种普通调用模式,函数体内的 this 是指向全局环境 window 的。不清楚这点的同学,可以能会遇到这样的一个bug:
var color = 'gg';var obj = { color : 'red', show : function(){ function func1(){ console.log(this.color); //gg } func1(); }