V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
FrankFang128
V2EX  ›  JavaScript

[教程] JS 里的 this 到底是什么?

  •  1
     
  •   FrankFang128 · 2016-11-20 19:44:20 +08:00 · 3938 次点击
    这是一个创建于 2928 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请移步至 https://zhuanlan.zhihu.com/p/23804247

    考虑到 V2 好长时间没有什么技术相关的文章,就搬运一篇最近的文章过来讨论讨论。

    最近两个月我在知乎上写了一系列的前端科普文章,水平一般,大家喜欢的话就关注下。

    GitHub : github.com/frankfang 知乎: https://www.zhihu.com/people/zhihusucks/activities

    第 1 条附言  ·  2016-11-20 20:37:54 +08:00
    第 2 条附言  ·  2016-11-20 22:42:20 +08:00
    感谢的不用回复啦,点「感谢」就好。
    21 条回复    2016-11-24 10:01:11 +08:00
    vow
        1
    vow  
       2016-11-20 19:59:14 +08:00
    正在学 js ,多谢!
    thinkif
        2
    thinkif  
       2016-11-20 20:03:24 +08:00
    这篇写的好,通俗易懂,没有废话
    FrankFang128
        3
    FrankFang128  
    OP
       2016-11-20 20:04:58 +08:00
    @thinkif 谢谢。 不过其实我觉得废话还是较多的,有些重要的地方故意说两边。
    FrankFang128
        4
    FrankFang128  
    OP
       2016-11-20 20:05:32 +08:00
    这帖子多长时间才能 append ……
    FrankFang128
        5
    FrankFang128  
    OP
       2016-11-20 20:07:24 +08:00
    为什么这帖子发了两遍,请删除另一篇 @Livid https://www.v2ex.com/t/321912#reply0
    pyufftj
        6
    pyufftj  
       2016-11-20 20:26:51 +08:00
    华科的学弟来膜一下~_~
    bdbai
        7
    bdbai  
       2016-11-20 20:48:57 +08:00 via Android
    通俗易懂,支持楼主。
    建议再介绍一下箭头函数的情况,这个应该没法用 function.call 解释了。
    SilentDepth
        8
    SilentDepth  
       2016-11-20 21:20:57 +08:00
    @bdbai 箭头函数就是 function.bind 嘛
    Yien
        9
    Yien  
       2016-11-20 21:44:05 +08:00 via iPhone
    收藏,感谢。
    liujiangbei
        10
    liujiangbei  
       2016-11-20 21:53:29 +08:00   ❤️ 1
    hasbug
        11
    hasbug  
       2016-11-20 21:58:26 +08:00
    感谢分享
    hanzichi
        12
    hanzichi  
       2016-11-20 22:25:55 +08:00
    "考虑到 V2 好长时间没有什么技术相关的文章"

    感觉 v2 不是聊技术,是用来灌水的 ...
    FrankFang128
        13
    FrankFang128  
    OP
       2016-11-20 22:42:36 +08:00
    @hanzichi 两年前没这么水的……
    bdbai
        14
    bdbai  
       2016-11-20 23:15:59 +08:00 via Android
    @SilentDepth 箭头函数压根没有 this ,也没有用 bind 改变 this 一说。
    VtoEXL
        15
    VtoEXL  
       2016-11-21 09:41:01 +08:00
    原来方应杭就是你啊
    FrankFang128
        16
    FrankFang128  
    OP
       2016-11-21 10:04:36 +08:00 via Android
    @VtoEXL 隐藏这么久被你发现了
    SilentDepth
        17
    SilentDepth  
       2016-11-21 10:42:07 +08:00
    @bdbai
    (arg) => {exp;}
    function (arg) {exp;}.bind(this)
    这二者效果相同。当然你要追究其里那确实不一样,不过也无非是强制绑定了上下文以及无法`new`而已
    FrankFang128
        18
    FrankFang128  
    OP
       2016-11-21 10:56:42 +08:00 via Android
    @SilentDepth 你们俩好像是一个意思
    SilentDepth
        19
    SilentDepth  
       2016-11-21 11:02:04 +08:00
    @FrankFang128 大概是对同一件事的不同视角导致的不同观点
    geektony
        20
    geektony  
       2016-11-21 20:47:57 +08:00
    其实这些问题,看完 You Don't Know JS 这个 series 基本都搞定了,不需要看文章
    david670121373
        21
    david670121373  
       2016-11-24 10:01:11 +08:00
    看了一半,回来支持下:)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1904 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:28 · PVG 00:28 · LAX 08:28 · JFK 11:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.