我被难住了,很想知道我在想什么。
我只是在重新编写一些代码并清理一些东西。我有一个执行 ajax 调用并返回 json 字符串的方法。因为我在几个地方使用了这个方法,所以我在一个命名空间中抽象了这个方法。
这是返回的 json 对象
{"charge_ID":"4","price":"37","description":"corporate rate"}
这是抽象的方法。
wwdb.getChargeRate = function( chargeID ){
var rate = {}, prop;
$.post(baseUrl + 'dashboard_job/jx_get_charge_rate',
{
'charge_ID': chargeID
},
function( data ){
for( prop in data) {
rate[prop] = data[prop];
}
},
'json'
);
return rate;
};
我以为我只能将数据分配给速率,但必须迭代才能使其正常工作。事实上,我认为我可以直接从 $.post() 方法的 function() 部分返回数据,但这不起作用。所以问题 1. 为什么我不能只返回数据?
但更基本和令人沮丧的是,在下面的代码中我无法访问对象属性。问题2.是为什么?
$('#charge_rate_slt').change(function(){
var t = $(this), v = $(t).val(), rate;
console.log(wwdb.getChargeRate( v )); //returns object ok
rate = wwdb.getChargeRate( v ); //assigns object ok
console.log(rate); //displays in firebug as object with properties
console.log(rate.price) //undefined
for(p in rate)
console.log( p ); //undefined?
});