javascript - 函数声明和匿名函数有什么不同?(前端小白求助。。)
高洛峰
高洛峰 2017-07-05 10:59:56
0
3
898

用函数声明的方式定义了一个改变元素style属性的函数会报错

但是window.onload下不会报错

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复 (3)
大家讲道理

宝宝 这个和你用什么函数没关系!是因为onload会把文档加载完才触发 而你肯定是因为文档没加载完 没找到元素 所以才报错 把js放到元素下面

    洪涛

    这和函数声明和匿名没有关系,而是和函数的调用时机有关系。
    改成这样,还能找到和匿名函数的问题么?

    function change () { /* ... */ } window.onload = change

    前者在调用时,box元素还没有,所以报了错;后者在DOM ready后调用,所以可以执行。你可以在change函数中log一下box对象看看。

      扔个三星炸死你

      问题不是这个,你需要知道文档是从上到下加载的,你把js文件放在了head
      执行到js文件的时候,这个时候连body都还没加载,自然无法获取到box,也就无法设置css了。
      你可以把js文件放到body的尾部:

      . . .  

      这样就不需要window.onload
      如果放在了head里面
      就需要在js文件头部写window.onload=function(){......}

        最新下载
        更多>
        网站特效
        网站源码
        网站素材
        前端模板
        关于我们 免责声明 Sitemap
        PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!