问几个 js 入门问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sNullp

问几个 js 入门问题

  •  
  •   sNullp 2014 年 2 月 27 日 2623 次点击
    这是一个创建于 4441 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近想学习一下前端的一些基本知识,有几个问题:

    1. Javascript 定义全局变量和函数有什么缺点,主要是污染命名空间?
    2. closure 中引用的变量是不是相当于 C 中的 static 变量?是否在 callback 中声明的匿名函数中使用 closure 可能会造成内存泄漏(每次回调都会有一个新的匿名函数 object ,所以会不断有无法释放的变量产生)?
    3. 在 jQuery 这种什么都是回调函数的框架里,如何不使用全局变量地共享一些数据?目前使用的是 $.data 的办法,是否有更好的选择?
    4. 比较好的 js 编程范式是不是只用极少的全局类和大量匿名函数?
    5. 想要把一些数据在不同的函数中抛来抛去,是不是比较好的做法是定义匿名函数作为 storage 然后用闭包做 getter/setter ?
    第 1 条附言    2014 年 2 月 27 日
    closure -> clojure
    8 条回复    1970-01-01 08:00:00 +08:00
    hadoop
        1
    hadoop  
       2014 年 2 月 27 日
    大松鼠你前后端通吃啊
    sNullp
        2
    sNullp  
    OP
       2014 年 2 月 27 日
    前端写着玩。
    主要是每次写前端都要拜托朋友很麻烦。

    其实我现在主要的任务是内核和存储相关的编程。。
    sNullp
        4
    sNullp  
    OP
       2014 年 2 月 27 日 via Android
    @jakwings 感谢,所以闭包其实并非是分享数据的唯一选择?话说为什么 js 里如此流行闭包呢?是为了封装实现细节的话,用 prototype 不行吗?
    jakwings
        5
    jakwings  
       2014 年 2 月 27 日
    @sNullp 用匿名函数传送数据貌似比较少见,一般用 {msg: ...} 之类的,也可以 {get: ..., set: ...} 。

    用闭包来封闭细节相当于模拟 private 访问,用 prototype 和 this 做不到。
    sNullp
        6
    sNullp  
    OP
       2014 年 2 月 28 日
    @jakwings 哦。懂了。确实用 prototye 和 this 面对小白开发者可能内部细节仍然会被搞乱。
    嗯,有道理,用这种 literal object 传数据确实方便又优雅。
    valianliu
        7
    valianliu  
       2014 年 2 月 28 日
    @sNullp 请问Pirate VPN管理页面上不去,我试着挂了Goagent和shadowshocks都连不上,是出问题了吗?
    sNullp
        8
    sNullp  
    OP
       2014 年 3 月 1 日
    @valianliu 是的。而且我现在太忙了没有时间去搞。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2863 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 03:29 PVG 11:29 LAX 20:29 JFK 23:29
    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