search

Home  >  Q&A  >  body text

javascript - js运行时和执行过程中不是一回事吗?

在《JavaScript模式》一书中,提到:

函数可以在运行时动态创建,还可以在程序执行过程中创建。

我的疑问是,运行时和程序执行过程中不是一回事吗?有何区别?

PHPzPHPz2902 days ago654

reply all(4)I'll reply

  • 天蓬老师

    天蓬老师2017-04-10 15:01:48

    经查,是因为中文版的翻译问题。

    原书的CHAPTER 4里,原文如下:

    Functions are objects that:
    • Can be created dynamically at runtime,during the execution of the program

    中文版翻译成了

    函数可以在运行时动态创建,还可以在程序执行过程中创建。

    《JavaScript模式》这本书的中文版是中国电力出版社出版的,翻译质量特别差,早在三年前就被很多前端码农们吐槽过了。

    我推荐你抛弃这本书,以免收到毒害,你可以看英文原版 http://item.jd.com/19177771.html

    如果觉得英文看起来吃力,也可以看看民间翻译版,翻译质量比那实体书高多了。

    在github可以看到民间版:
    https://github.com/TooBug/javascript.patterns/blob/master/chapter4.markdown

    reply
    0
  • 怪我咯

    怪我咯2017-04-10 15:01:48

    我觉得是这个区别

    var fun = function() {};
    
    function fun() {};
    

    reply
    0
  • ringa_lee

    ringa_lee2017-04-10 15:01:48

    咳...我英语是纯粹的渣渣。但是这句话我觉得也应该翻译成:可以在程序执行的时候动态创建。
    during应该承接上半句才对吧~
    动态创建不是指二楼同学说的,二楼同学所指的是定义函数的不同的方法。

        function foo(){} // 预编译的时候会将其提到顶部,所以可以在任意位置调用    
        var foo = function(){} // 不会提升,只能在foo之后调用
    

    动态创建函数更多见于框架或者模板引擎中,创建格式如下

        var foo = new Function('arg1', 'arg2', 'functionBody');
    

    另外,个人觉得看技术书籍不用太咬文嚼字,因为有的字真的是错的...

    reply
    0
  • 高洛峰

    高洛峰2017-04-10 15:01:48

    意思应该是【函数可以在编译时候创建也可以在执行时候创建。】

    reply
    0
  • Cancelreply