javascript中的this指向
javascript中,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定,this最终指向调用它的对象。
1.函数调用模式(指向window)
当函数不为对象的属性,即只是单纯的函数调用,此时,this被绑定为全局变量,也就是指向的是浏览器下的window对象。
2.方法调用模式(指向对象)
当函数被保存为到对象的属性时,就称为这个对象的方法。当被调用时,this被绑定到这个对象上。如果调用表达式包含一个提取属性的动作(通过. 或 []),那么它被称为方法调用,此时,this指向的是当前的对象,也就是obj。
undefined是因为在myName作用域中没有name这个变量
3.构造函数调用
使用new运算符创建出一个新对象,this会被绑定到这个新对象上。这个函数就可以成为此对象的构造函数,此时的this指向这个新对象
4.事件调用函数(指向调用的节点)
5.ES6箭头函数中的this
ES6中this指向是上下文的指向,也可以说是父级函数的指向。