调用位置和绑定规则
1. 调用位置:寻找调用位置最重要的是分析调用栈(为了到达当前执行位置所调用的所有函数)。我们关心的调用位置就在当前正在执行的函数的前一个调用中。
2. 绑定规则:
默认规则:
独立函数调用时,可以把这条规则看作是无法应用其他规则时的默认规则。
解释:
foo()
是直接使用不带任何修饰的函数引用进行调用的,因此只能使用默认绑定,无法应用其他规则。如果使用严格模式,则不能将全局变量用于默认绑定,因此this会绑定到
undefined
虽然this的绑定规则完全取决于调用位置,但是只有foo()运行在非
struct mode
时,默认绑定才能绑定到全局对象;在严格模式下调用foo()
则不影响默认绑定;
Last updated
Was this helpful?