。解析函数: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
。他的方法允许他一次创建它们并在闭包中捕获它们,这样他就可以访问它们,而不是他的函数之外的任何人。