函数的四种调用模式==>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( ),不可以转换。

posted @ 2020-08-16 14:39  MIKE-CHOW  阅读(157)  评论(0)    收藏  举报