翻译自文章The Simple Rules to ‘this’ in Javascript。 确定什么是 this 并非难事。总的来说,通过查找函数被调用时的位置(和方法)就可以决定。遵循以下规则,按优先级排列。 规则 通过 new 关键字调用构造函数,函数内的 this 是一个全新的对象。 {代码...} 通过 apply 、 call 或 bind 调用一个函数,函数内的 this...
执行一下,WTF!怎么报错了,我们看看错误是什么?Uncaught TypeError: foo1 is not a function,OK,我们来设置断点来分析一下,这里,我们把foo1和foo2加入监视窗口;我们可以看到foo1函数执行之前就已经获得了定义,而foo2函数却显示未定义,到这里我们就明白了。但是为什么foo1就生效了呢?我们来说说声明提升。