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

有谁已经把魔女[贼丝]完全 hold 住了?

  •  
  •   Gem · 2015-12-21 10:28:38 +08:00 · 3750 次点击
    这是一个创建于 3264 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Js 里面 this 真的是神坑,用着用着就迷糊了,大家都是用什么方法驯服的?
    21 条回复    2016-01-04 11:01:01 +08:00
    spark
        1
    spark  
       2015-12-21 10:44:09 +08:00
    oott123
        2
    oott123  
       2015-12-21 10:50:02 +08:00
    抛弃 OOP 的思维去看 this 就好了……
    应该说 this 就是个 context ……
    jarlyyn
        3
    jarlyyn  
       2015-12-21 10:53:07 +08:00
    var self=this;
    sneezry
        4
    sneezry  
       2015-12-21 10:53:10 +08:00 via iPhone
    1 楼推荐的书很棒,图灵有出版
    bramblex
        5
    bramblex  
       2015-12-21 11:14:38 +08:00
    ╮(╯_╰)╭ ……

    很简单的东西,没什么需要理解啊。记住 this 就是谁调用就指向谁就行了
    SourceMan
        6
    SourceMan  
       2015-12-21 11:15:28 +08:00
    var that = this;
    Sivan
        7
    Sivan  
       2015-12-21 11:22:34 +08:00
    jin5354
        8
    jin5354  
       2015-12-21 12:32:12 +08:00
    this 一共就 4 种用法啊

    另外我们还有=>
    est
        9
    est  
       2015-12-21 12:40:52 +08:00   ❤️ 1
    觉得自己 js 很 nb 的应该看看这个

    lxrmido
        10
    lxrmido  
       2015-12-21 12:42:54 +08:00
    @est
    哈哈哈哈哈哈哈哈
    w88975
        11
    w88975  
       2015-12-21 12:43:42 +08:00
    一般都是 var _this = this;
    var self = this;
    bramblex
        12
    bramblex  
       2015-12-21 12:58:27 +08:00
    @est

    作为一个觉得自己 js 很牛逼的,看完这个表示看来自己有必要着手造一个 target 到 js 的语言了……
    josephok
        13
    josephok  
       2015-12-21 13:55:07 +08:00
    [贼丝]是个什么鬼?能不能好好写标题?
    maddemon
        14
    maddemon  
       2015-12-21 14:54:01 +08:00
    this 是使用者,弄清楚谁使用了,就是谁负责
    Gem
        15
    Gem  
    OP
       2015-12-21 15:50:56 +08:00
    @josephok [ this ] 有时给我的感觉像 “贼” 一样“油滑”,不容易 hold 住;有时候一旦自以为 hold 住了,却又像陷入了“丝”一样境地,“剪不断,理还乱”。
    lllang
        16
    lllang  
       2015-12-21 16:18:23 +08:00
    @Gem
    你这个解释,简直不能太 666
    civet
        17
    civet  
       2015-12-21 21:24:43 +08:00
    其实当你不清楚 this 是什么的时候, console.log()就基本解决了你的疑问
    jerray
        18
    jerray  
       2015-12-21 21:49:54 +08:00
    多用用 Function.prototype.bind() 就懂了
    hqs123
        19
    hqs123  
       2015-12-22 08:04:19 +08:00
    看不懂,感觉很厉害样子,
    xbaofeng
        20
    xbaofeng  
       2015-12-28 10:42:14 +08:00
    es6
    lijsh
        21
    lijsh  
       2016-01-04 11:01:01 +08:00
    这有什么难的,认真过一遍《 javascript 高级程序设计》;如果还是没弄懂,就再看一遍。

    不过现在有 ES6 了,好像简化了不少。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2539 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:55 · PVG 23:55 · LAX 07:55 · JFK 10:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.