最初にデータベースからいくつかのデータを取得し(関数$.get())、次にデータに対していくつかの計算を実行するJavaScriptコードを書いています-静的プロパティを持つCalcModule()を使用して、データを関数Test()に渡します. コンソールを介して、静的プロパティ (productname、productid) が設定されていることがわかります ($.get() 内) が、コンソールを介して、関数 Test() に対してこれらの値がまだアクセスできない (表示されない) こともわかります??
私は何を間違っていますか?( http://elegantcode.com/2011/01/19/basic-javascript-part-7-static-properties-and-methods/などの静的プロパティに関するいくつかのサイトをチェックしましたが、まだ問題を見つけることができません)
コード:
$(document).ready(function () {
function CalcModule() {};
//static variables
CalcModule.nrofeproducts;
CalcModule.productid = [];
CalcModule.productname = [];
//get the product data from the database
$.get("getdata.php",
function (msg) {
//some code here...
//load CalcModule with retrieved db values for calculation
for (var i = 0; i < msg.nrofeproducts; i++) {
CalcModule.productid[i] = msg.productid[i];
CalcModule.productname[i] = msg.productname[i];
}
//for debugging purposes
console.log(CalcModule.productname);
console.log(CalcModule.productid);
}, "json"); //$.get()
function Test() {
var x = [];
x = CalcModule.productname;
console.log(CalcModule.productname);
}
Test();
})