函数中的对象访问不起作用

San*_*rez 3 javascript scope

这是代码:

(function(Info, undefined) {
    var createInfoTableForFeature = function (obj) {
        var data2form = {};
        data2form.name = obj.name;
        data2form.state = obj.state;
        data2form.stateid=obj.stateId;
        data2form.city = obj.city;
        data2form.cityId=obj.cityId;
        data2form.sector = obj.sector;
        data2form.sectorId=obj.sectorId;
        data2form.municipality = obj.municipality;
        data2form.municipalityId=obj.municipalityId;
        data2form.parish = obj.parish;
        data2form.parishId = obj.parishId; 
        data2form.postcode = obj.postcode;
    }
    Info.copy2form = function(data){
        console.log(data);
    }
})(window.Info = window.Info || {});
Run Code Online (Sandbox Code Playgroud)

当我打电话Info.copy2form(data2form),data2formundefined

dan*_*rvt 5

你想要data2form是全局的,那么你必须var在声明变量之前删除de 关键字data2form以使其成为全局变量.

如果你想从Info容器中的任何地方访问它,那么你可以这样声明它:

Info.data2form = {};
Run Code Online (Sandbox Code Playgroud)

然后像这样调用你的函数:

Info.copy2form(Info.data2form)
Run Code Online (Sandbox Code Playgroud)