Javascript 的this绑定使用时容易混淆,是语言的一个设计失误。而Js的闭包是这门语言的精髓。其实this是由函数的调用方式决定的,this代表函数执行时的上下文,而函数的调用有五种
1 | function ex1(name) {} |
- 函数直接执行: 严格模式下是undefine,非严格模式是global context.(浏览器中是Window对象).
- 函数做为对象的方法被调用: this绑定到对象.
- 函数做为构造器被调用(new): this绑定到创建的对象
- call / apply 调用时可指定this对象.