Heim  >  Fragen und Antworten  >  Hauptteil

Was ist der Unterschied zwischen Funktionsdeklaration und anonymer Funktion? (Front-End-Neuling bittet um Hilfe ...)

Wenn Sie eine Funktion definieren, die das Stilattribut eines Elements mithilfe einer Funktionsdeklaration ändert, wird ein Fehler gemeldet

Aber unter window.onload wird kein Fehler gemeldet

高洛峰高洛峰2663 Tage vor917

Antworte allen(3)Ich werde antworten

  • 大家讲道理

    大家讲道理2017-07-05 11:01:56

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

    Antwort
    0
  • PHP中文网

    PHP中文网2017-07-05 11:01:56

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

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

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

    Antwort
    0
  • 扔个三星炸死你

    扔个三星炸死你2017-07-05 11:01:56

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

    .
    .
    .
    <script src="./x.js"></script>
    </body>

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

    Antwort
    0
  • StornierenAntwort