Crockford为什么使用这种格式来编写JSON.解析函数



。解析函数:https://github.com/douglascrockford/JSON-js/blob/master/json_parse.js

为什么crockford选择在他的变量声明中声明这么多函数,然后分开一个函数,最后返回一个main函数?

这样写函数有什么好处吗?

伪语法:

var json_parse = (function () {
    var x,
        y, 
        z, 
        string = function () {
             <code>
        },
        word = function () {
             <code>
        },
        white = function () {
             <code>
        },
        value;
    value = function () {
        <code>
        white();
        string();
        etc..
    };
    return function (string) {
         return something;
    }
})();

vs .像这样写一个函数:

var parse_json = function (input) {
     var x, y, z;
     function string () {
           <code>
     }
     function word () {
           <code>
     }
     function white () {
           <code>
     }
     function value () {
         <code>
          white();
          string();
          etc..
     }
    function mainParse () {
         return something;
    }
   return mainParse(input);
};

希望我的小代码示例有意义。我是JavaScript的新手,我想确保我学习了编写像这样的大型函数的最佳实践。

您的变体必须创建word, white…函数,每次调用json_parse。他的方法允许他一次创建它们并在闭包中捕获它们,这样他就可以访问它们,而不是他的函数之外的任何人。

最新更新