为什么window.addEventListener不起作用?

这个问题在这里已经有了答案:

  • var functionName = function(){} vs function functionName(){} 31个答案

  • 当您使用var x = function(){}来声明函数时,应该在调用函数之前声明它。

    通过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!"); }
    }
    

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


    之前声明该函数。

    var initialiseTable = function () {
        console.log("hello world!!");
    };
    try {
        window.addEventListener("load", initialiseTable, false);
    } catch(e) {
        window.onload = initialiseTable;
    }
    

    有关声明函数的更多信息,请阅读以下内容:var functionName = function(){} vs function functionName(){}


    既然你来自C#,其差别很像:

    class A {
        public int method2() {
            //I can call method1 even though it *declared* later below
            int a = method1(); 
        }
    
        public int method1() {
    
        }
    }
    

    VS

    class B {
        public int method2() {
            bool a = method1(3); //I can't call it because it is *assigned* later below.
                             //In fact I cannot even compile it 
            Func<int, bool> method1 = x => x == 3;
        }
    }
    

    您可能会注意到JavaScript中的差异,如果您看一下:

    function a() {
    
    }
    

    任何地方都没有任务。

    var a = function(){} ,显然有赋值,并且与后面的C#示例类似。

    链接地址: http://www.djcxy.com/p/2837.html

    上一篇: Why window.addEventListener does not work?

    下一篇: "Usual" functions vs function variables in JavaScript