如何保持对象的范围?

Nat*_*May 2 javascript jquery scope object

在此输入图像描述

我正在实现以下功能.页面的大部分内容在我的entryPage.php文件中创建一次."Stage"表是通过对stageArea.phpAJAX调用创建的.我的问题是我的数据对象是在我的其他函数之外无法访问的.$(document).ready(function() {...}$(document).ready(function() {...}

entryPage.php

...HTML...
<script> 
  $(document).ready(function() { 

    var dataObject = new DataEntryObj(); // create the data object

    $.post("../stageArea.php", {array : dataObject.dataArray}, function(data){
        $('#stageArea').html(data);
    });
  }
  var DataEntryObj = function(){
    this.dataArray = [[0,0,0,0,0,0,0,3,0]];
    ....
  }

  function updateData(value, row, index){
    alert("update:" + row + " " + index + " " + value); //values come in OK
    alert(dataObject.dataArray[row][index]); // but the data Object isn't here
    dataObject.dataArray[row][index] = value; // so this cannot be assigned

    $.post("../stageArea.php", {array : dataObject.dataArray}, function(data){
        $('#stageArea').html(data);
    });
  }
</script>   
Run Code Online (Sandbox Code Playgroud)

将对象保持在与其他函数相同的范围内有什么好的解决方案?

cha*_*tfl 5

只需声明var外部,$(document).ready然后分配它的值而不使用var

var dataObject ;
$(document).ready(function() { 

    dataObject = new DataEntryObj(); // create the data object
    ......

});
Run Code Online (Sandbox Code Playgroud)

现在这相当于 window.dataObject