JavaScript 中的 this

以下都是自己学习过程中的自问自答:

  • Q:JS 中的 this 是什么意思?A:我理解为一个代词。

  • Q:什么时候能确定 this 指代的是什么?A:函数执行的时候。

  • Q:上一个问题展开讲讲?A:有一种方便记住的规律就是:

    • foo.call(a, b) 中第一个参数 a 就是 this 指代的东西;
    • foo(argv)foo.call(undefined, argv) 是等价的;
    • a.foo(b)a.foo.call(a, b) 是等价的;
    • 在一般情况下,如果 thisundefined,会被自动换成 global 对象,在浏览器中也就是 window 对象。
  • Q:就这么简单?A:显然不是,以上只是方便初学记住的规律。也有例外情况。

  • Q:例外情况?A:例如 es6 中新加入的箭头函数,是在声明时就绑定了 this,之后即使使用 callapply 也没法改变 this 的值。

  • Q:在学习 this的过程中参考的那些文章?A:以下三篇收益最多:

    1. this 的值到底是什么?一次说清楚
    2. javascript 中的对象查找
    3. Understand JavaScript's "this" With Clarity, and Master It
  • Q:还有不解的地方吗?A:有。例如 new� 相关的部分。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容