V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Mark24
V2EX  ›  分享发现

终于理解 JQuery 里之前为毛加个立即执行的括号……原来 JS 是个残疾

  •  
  •   Mark24 · 2016-04-05 17:31:04 +08:00 · 3163 次点击
    这是一个创建于 3158 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Javascript 是个残疾

    立即执行函数,产生的闭包作用域,就是用来模拟
    C 语言里 { }
    Java 里 { }
    Pytho 里 缩进
    产生的块级作用域,而已
    用闭包作用域,模拟块级作用域
    可以产生名字空间

    同样的,比如 JS 里类的定义,使用了 function 无论它怎么表示,无非是想模拟正常语言的 class 而已

    JS 里都是
    几经周转……哎
    好心塞

    终于搞懂闭包了
    我把它想得太高大上了

    现在目前出现的所有语言, Lisp , MMA ,还有其他的函数式我不懂
    反正
    C , C++,Java,Python , JS
    应该都差不多

    真的, shit 一样
    22 条回复    2016-04-07 12:19:20 +08:00
    chengzhoukun
        1
    chengzhoukun  
       2016-04-05 17:34:25 +08:00
    所以很多人说 JS 的原型链继承比类继承高效,我完全理解不了。
    这不, ES6 还是把 class 这个保留字用上了
    holyghost
        2
    holyghost  
       2016-04-05 17:40:33 +08:00
    什么变量声明提前,没有块级作用域
    千万不要以为这些是 feature
    suduo1987
        3
    suduo1987  
       2016-04-05 18:22:10 +08:00 via iPhone
    使用什么程序语言并不能给程序员带来什么优越感,正确的输入有期望的输出就可以了,关键是看实现的逻辑。那才是编程的精华所在。
    andy12530
        4
    andy12530  
       2016-04-05 18:30:54 +08:00
    你们又想黑我大 JS ,搞个大新闻,对不对。
    thermal
        5
    thermal  
       2016-04-05 18:35:25 +08:00
    对象是穷人的闭包,闭包是穷人的对象。
    yimity
        6
    yimity  
       2016-04-05 18:53:21 +08:00   ❤️ 1
    那求求你不要用这个残疾的语言啊。
    Mark24
        7
    Mark24  
    OP
       2016-04-05 18:58:36 +08:00   ❤️ 3
    @yimity 没办法只此一家,别无他店,要是有选择,我就换了。就像我想用除了电信,移动,联通以外的第四家……国内暂时木有。但是不代表这三家代表着世界先进运营商,对不
    jsonline
        8
    jsonline  
       2016-04-05 19:04:03 +08:00
    你懂毛
    lwbjing
        9
    lwbjing  
       2016-04-05 19:08:11 +08:00
    表示,呵呵。
    gamexg
        10
    gamexg  
       2016-04-05 19:44:37 +08:00
    还可以吐槽下 node.js ,异步回调是早玩烂的东西了。 python 、 go 都实现了自动的同步多线程转异步协程,直接用普通多线程的方式写程序,语言自动的后台转换成异步协程实现,方便快捷。

    js 主要是需要兼容各种浏览器,所以很难增加新特征。
    fds
        11
    fds  
       2016-04-05 19:52:05 +08:00
    块级作用域在 es6 里已经有了, class 也有了
    { let a=...; }
    http://www.infoq.com/cn/articles/es6-in-depth-let-and-const

    本来 js 就是 10 天搞出来的语言,你还想怎样……
    sox
        12
    sox  
       2016-04-05 19:56:28 +08:00 via Android
    it's jQuery ;)
    sox
        13
    sox  
       2016-04-05 19:57:20 +08:00 via Android
    过几天你又会发现现在的想法是个残疾。
    Mark24
        14
    Mark24  
    OP
       2016-04-05 20:33:32 +08:00 via Android
    @sox 永远无法翻过一个一直在长高的山
    Pastsong
        15
    Pastsong  
       2016-04-05 20:35:57 +08:00
    @Mark24 That doesn't matter. 有人用的语言才是好语言
    anonymityl
        16
    anonymityl  
       2016-04-06 01:22:33 +08:00   ❤️ 1
    搞清楚闭包的作用再来发吧,没搞清楚就来发这种帖子,那才是 shit 一样。
    allan888
        17
    allan888  
       2016-04-06 07:37:03 +08:00   ❤️ 1
    你说 js 有什么不好,想搞个大新闻,说到点子上的话,这没问题。
    但是你说闭包 shit 一样,你这思维跑得比香港记者还快, too young 。
    shiye515
        18
    shiye515  
       2016-04-06 07:38:44 +08:00 via Android
    @Mark24 有很多家的,你不知道罢了 typescript ,coffeescript
    123s
        19
    123s  
       2016-04-06 09:53:31 +08:00   ❤️ 1
    你自己不知道而已
    kiwi95
        20
    kiwi95  
       2016-04-06 10:51:10 +08:00   ❤️ 1
    @chengzhoukun js 的 class 只是个语法糖,本质还是 prototype 的, function 也不是去模拟 class ,楼主的理解还是有问题的
    meinqy
        21
    meinqy  
       2016-04-07 08:37:01 +08:00
    借楼问下, es6 class 有什么优雅的方式实现 静态属性和方法
    dorentus
        22
    dorentus  
       2016-04-07 12:19:20 +08:00
    Python 有块级作用域了?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3445 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 11:16 · PVG 19:16 · LAX 03:16 · JFK 06:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.