美文网首页程序员
js立即执行定义的方法

js立即执行定义的方法

作者: 刘振宁的博客 | 来源:发表于2019-01-24 08:45 被阅读81次

    js 直接执行定义好的方法,出现问题

    在我的印象中,js定以后,是可以直接执行的,就是在后面加一个(),标志着直接执行,但是最近写了一个方法,用了一下却不行,如下:

    function doSomeThing() {
        console.info('hello,world');
    }();
    

    解决方法

    后来查资料,发现这种写法确实不行,但是确实是可以立即执行的,即用 var xxx = function 这种方式,如下:

    var someThing = function() {
        console.info('hello,world');
    }();
    

    这种写法是可以的。

    分析原因

    js的这两种写法,其实是有细微差别的。

    第一种,是一种方法的定义

    定义方法就是为了后面调用。
    假如你仅仅是为了就立即执行一次,以后就再也不执行了,那完全没必要定义方法,直接写语句就可以了。
    所以这里设计者不让立即执行,最多你之后再调用一次就行了.

    第二种,是定义了一个变量,只不过这个变量的类型正好是一个方法。

    定义变量就是为了后面使用。
    变量的使用场景比较多,假如变量是方法的话,可以执行,但是作为一个变量,也可以用于其他用途,比如作为参数传给另一个方法。
    所以设计者在这里让他可以立即执行一次,因为以后可能就不执行了.

    总之:就是胡诌一种原因,设计成怎样都看设计者的心情,就像老子为什么要写道德经一样,因为老子愿意!!没错,记住就行了.

    <span class="timestamp-wrapper"><span class="timestamp"><2019-01-24 Thu></span></span>

    相关文章

      网友评论

        本文标题:js立即执行定义的方法

        本文链接:https://www.haomeiwen.com/subject/vznejqtx.html