请考虑以下代码段:
var OuterScope = function () {
function InnerScope () {
this.name = "K";
this.address = 10;
}
return new InnerScope();
};
console.log(new OuterScope());//Returns: InnerScope { name: 'K', address: 10 }
console.log(new OuterScope().constructor.name);//Returns: InnerScope
为什么/ new OuterScope()
如何返回数据? InnerScope
未在全局命名空间中定义(其中new OuterScope()
正在被调用),但JS正确识别对象/它的属性/构造函数名称等。
似乎将返回的数据解析为JSON&全局命名空间中的JS解释器基于该JSON结构创建一个JS对象,类似于从服务器端向客户端提供JSON数据时发生的情况。