关闭

js中this关键字的指向问题

标签: 函数对象实例javascriptthis
243人阅读 评论(0) 收藏 举报
分类:

1.this关键字

this 是一个关键字,不同于普通变量,我们不能对它进行赋值等操作,但是我们可以通过call、apply方法和with语句有意识地让它指向某个对象。


2.表层分析

全局函数中

非严格模式下,this指向window对象,而严格模式下则为undefined

对象方法中

此时this指向该对象

构造函数中

此时this指向实例对象

3.实质

以前都是按2中的方法去强行记忆的,知道看到这样一句话——“this始终说明当前方法属于谁”,顿觉豁然开朗。

全局函数

全局函数本身是全局对象window的方法,故此时this指向于window

对象方法

此时指向该方法的父对象

构造函数

这里可能有点费解,但是我们可以把new关键字的操作顺序分解成如下步骤:
a.创建新对象;
b.将构造函数添加成该新对象的方法并执行(这里可以理解为调用了call/apply方法);
c.将构造函数的prototype属性添加到新对象的__proto__属性中

如此一来,感觉脉络一下子清晰了~

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:7811次
    • 积分:388
    • 等级:
    • 排名:千里之外
    • 原创:12篇
    • 转载:0篇
    • 译文:20篇
    • 评论:0条
    文章分类