函数的四种调用模式==>this的指向问题(上)
每一个函数都有自己的this指向,这个指向是非常灵活的,与函数的调用模式相关,
1.this的指向只有在函数调用时才能确认下来,声明函数的时候不能确认this的指向
如何分析this
1.分析this是属于哪个函数
2.这个函数的调用模式是哪一种
函数的四种调用模式
1.函数调用模式:函数名( ),函数内的this指向window

2.方法调用模式:对象.方法( ),对象['方法']( )
方法内的this指向了调用方法的对象
凡是点语法或中括号语法调用函数,都属于方法调用模式

3.构造函数模式:new 构造函数( ),构造函数内的this指向了实例对象

几种特殊的this指向
1.定时器和延时器的this指向了window,因为这这两者都是由window来调用的
2.事件中的this指向的是当前元素
练习

f( )输出的结果是18
这里需要注意的是:f( )不可以当做obj.getAge( )处理,
我们只需要观察函数是何种调用模式就可以准确的判断this的指向,不可以将f( )理解成obj.getAge( ),不可以转换。
浙公网安备 33010602011771号