为什么window.addEventListener不起作用?

101*_*01V 6 javascript

在window.onload事件上,我希望调用一个函数。如果我按照下面的定义进行定义,则不会调用该函数。

try {
    window.addEventListener("load", initialiseTable, false);
} catch(e) {
    window.onload = initialiseTable;
}

var initialiseTable = function () {
    console.log("hello world!!");
};
Run Code Online (Sandbox Code Playgroud)

但是如果我将函数声明更改为

function initialiseTable() {
    console.log("hello world!!");};
Run Code Online (Sandbox Code Playgroud)

它有效,有什么主意吗?

tai*_*nsu 6

使用var x = function(){}声明函数时,应在调用函数之前声明。

By function x (){},x将存在于当前作用域中,无论它声明多晚。因为这样的副作用var x = function(){}比较推荐。例如:

var user = 'alien';
if( user == 'alien') {
    function salute () { console.log("Welcome to Earth!"); }
} else {
    function salute (){ console.log("Good day!"); }
}
Run Code Online (Sandbox Code Playgroud)

salute()将打印Good day!无论如何,即使它不是我们想要的。