猿问

这段代码为什么等于667 而不是undefined?

function say() {

        var num = 666;

        function sayAlert() {alert(num);}

        num++;

        return sayAlert;

    }

    var demo = say();

    demo();


Leo_92
浏览 2056回答 6
6回答

_da

这是一个典型的闭包var demo = say();return得到的是say的作用域 和function sayAlert() {alert(num);}  所以 sayAlert能访问到say作用域内的变量

陌熙

谁写的这种代码?以后还是要少些这种代码,好的代码给人一看能明白。

qq_彼岸流年_1

你输入的是数字666,之后又写数字加1,输出加完的数字当然是667。
随时随地看视频慕课网APP
我要回答