【发布时间】:2011-04-22 18:40:49
【问题描述】:
在 json2.js 的顶部(cmets 后的第 160 行:https://github.com/douglascrockford/JSON-js/blob/master/json2.js),是以下代码:
var JSON;
if (!JSON) {
JSON = {};
}
通常,声明 var something 会将 "something" 设置为未定义:
var something = {};
(function(){
var something;
console.log(something); // logs undefined
})();
通常我会通过以下方式实现这个目标:
var JSON = JSON || {};
那么,允许写入“var JSON”而不将其设置为未定义的全局 JSON 对象是什么?
为什么像 Crockford 这样的人会推广一种在任何其他情况下都不会这样运作的技术?
【问题讨论】:
标签: javascript json scope