java|《JavaScript经典面试题》第3道(关于this指向的常见面试题)

微信公众号:javafirst
继续我们的经典面试题系列,今天我们了解一下关于函数内部this指向的问题,用一个简单的例子来讲解一下:
看下面的代码,你觉得输出的结果是什么?
java|《JavaScript经典面试题》第3道(关于this指向的常见面试题)
文章图片

代码中我们4次调用来console.log()来在控制台输出内容,请问4次的内容分别是什么?
【java|《JavaScript经典面试题》第3道(关于this指向的常见面试题)】在外部函数中, thisself两者都指向了 myObject ,因此两者都可以正确地引用和访问foo
在内部函数中,this不再指向myObject。其结果是,this.foo没有在内部函数中被定义,相反,指向到本地的变量self保持在范围内,并且可以访问。 (在ECMA 5之前,在内部函数中的this 将指向全局的 window 对象;反之,因为作为ECMA 5,内部函数中的功能this 是未定义的。)
所以,上面的代码将输出以下内容到控制台:
java|《JavaScript经典面试题》第3道(关于this指向的常见面试题)
文章图片



更多资源扫一扫免费获取
java|《JavaScript经典面试题》第3道(关于this指向的常见面试题)
文章图片


    推荐阅读