码迷,mamicode.com
首页 > 编程语言 > 详细

《你不知道的javascript》【3】—— this 和对象原型

时间:2020-06-26 16:16:28      阅读:56      评论:0      收藏:0      [点我收藏+]

标签:inf   href   back   java   rgb   none   parent   因此   全局对象   

 

《你不知道的javascript》【3】—— this 和对象原型

https://www.bilibili.com/video/BV1iE411P7UP

 

浅显的总结《你不知道的js》this指向

 
技术图片

 

 

技术图片

 

技术图片

 

 

技术图片

 

 

技术图片

 

 

右查找的副作用:查找到顶层都找不到,就会抛出错误 

技术图片

 

 如下图所示:

 

技术图片

 

 

 技术图片

 

 

那么我们怎么知道这里应用了默认绑定呢?可以通过分析调用位置来看看 foo() 是如何调 用的。在代码中,foo() 是直接使用不带任何修饰的函数引用进行调用的,因此只能使用 默认绑定,无法应用其他规则。

如果使用严格模式(strict mode),那么全局对象将无法使用默认绑定,因此 this 会绑定 到 undefined:

 

技术图片

 

 上面这段绕晕了。。。

 

 

 

技术图片

 

 环境问题?

技术图片

 

 

 

技术图片

 

技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

技术图片

 

 技术图片

 

 技术图片

 

 

 技术图片

 

 

 

技术图片

 

 技术图片

 

  优先级:直接看结论:

技术图片

 

 

 

技术图片

 

 

然而,总是使用 null 来忽略 this 绑定可能产生一些副作用。如果某个函数确实使用了 this(比如第三方库中的一个函数),那默认绑定规则会把 this 绑定到全局对象(在浏览 器中这个对象是 window),这将导致不可预计的后果(比如修改全局对象)。

显而易见,这种方式可能会导致许多难以分析和追踪的 bug。

技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 

技术图片

 

 

 

技术图片

 

 

技术图片

 

 

 

《你不知道的javascript》【3】—— this 和对象原型

标签:inf   href   back   java   rgb   none   parent   因此   全局对象   

原文地址:https://www.cnblogs.com/cx2016/p/13195125.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!