[教程] JS 里的 this 到底是什么? - V2EX
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 4404 次点击
    这是一个创建于 3258 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请移步至 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 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     Solana     3728 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 00:51 PVG 08:51 LAX 17:51 JFK 20:51
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86