在JavaScript中,this不是固定不变的,它的指向取决于上下文环境,一般的,认为this指向使用它时所在的对象。主要有以下几类指向:
- 在方法中,this 表示该方法所属的对象。
- 如果单独使用,this 表示全局对象。
- 在函数中,this 表示全局对象。
- 在函数中,在严格模式下,this 是未定义的(undefined)。
- 在事件中,this 表示接收事件的元素。
- 类似 call() 和 apply() 方法可以将 this 引用到任何对象。
this代表的是 执行这个this代码的环境对象 ;this在脚本中代表的是window全局对象
eg.1
此处打印的便是karen
eg.2
eg.3
eg.4
为什么要打印this?
this代表了一个对象 常常在项目中我们要给一个对象操作成员
fn() ->window 调用者是window
obj.fn()->obj
obj.xx.xx2()->obj.xx
(function(){})()->window
fn()()->window
fn()[1]()->fn()返回的数组
在js程序中无论多么复杂的程序 this只需要看离(嵌套级别)最近的function的这个单词的调用者
面试题
eg