使用闭包保存构造函数，而不是暴露在全局变量里