读取函数外的foreach变量值

时间:2016-05-10 19:38:56

标签: javascript json function

我有2个函数,我存储了很多变量。我想读取函数外的那些变量。所以,我可以阅读该值,并适用于条件。请帮忙。

这是函数,

var dynamicFormObject = new dynamicObject(jsonDataModel);

function dynamicObject(jsonData) {
  this.formId = jsonData[0].formName;
  console.log(this.formId);
  this.formType = jsonData[0].formType;
  this.formLayout = jsonData[0].formLayout;
  this.sectionCount = jsonData[0].sections.length;
  this.getSectionDetails = sectionDetails(jsonData[0].sections);
  this.formRows = getSetionFieldDetails(jsonData[0].sections);
  this.formFields = getContainedFields(jsonData[0].sections);
  this.getNoOfSections = function(jsonData) {
    return jsonData[0].sections.length;
  };
}


function sectionDetails(sectionData) {
  var sectionDetails = [];
  if (sectionData.length > 0) {
    sectionData.forEach(function(item) {
      sectionDetails.push({
        sectionId: item.sectionId,
        sectionName: item.sectionName,
        sectionLayout: item.sectionLayout
      });
    });

    return sectionDetails;
  } else {
    return "Error";
  }
}

sectionDetails(jsonDataModel);
console.log(sectionDetails[0].sectionLayout);

if($scope.entity[0].sections[0].sectionId === 1 && $scope.entity[0].sections[0].sectionLayout == "linear_layout_vertical"){
    if(dynamicFormObject.formLayout == "linear_layout_horizontal"){
        console.log("sadasd");
        var newdiv = document.createElement("div");
        console.log(newdiv);
        newdiv.setAttribute('horizontal', '');
        newdiv.setAttribute('layout', '');
        newdiv.className('col-md-12');
        document.body.appendChild(newdiv);

    }

1 个答案:

答案 0 :(得分:0)

不可能从函数闭包之外的函数闭包中访问从函数闭包中声明的变量,但是,你可以在函数外部声明一个变量,只在函数内使用/更新它,并且该使用/更新的结果将在函数外部提供。

var x;

function setX(){
  x = 6;
}

setX();

console.log(x) // 6