首页 > 编程语言 > 详细

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

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

 

《你不知道的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 和对象原型

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!