2012-06-29 134 views
0

log.original_fields始終爲空。爲什麼?Javascript賦值運算符不起作用

var updateChangeLog = function(log, currentRecord) { 
    var records, record; 
    if(!log.original_fields) { 
     records = ["a","b"]; 
     log["original_fields"] = records; 
     // log.original_fields = records; // doesnt work either 
     debugger; 
    } 
} 
+2

你傳遞給'updateChangeLog'函數的是什麼? 「log」是一個對象嗎? – jackwanders

+1

是的,你必須設置錯誤的東西,爲我工作:http://jsfiddle.net/AMnNx/ – TheZ

+0

它讓我改變新的屬性,但我不能做任何事情與現有的屬性。該對象是來自web sql的記錄。 http://i1120.photobucket.com/albums/l493/powerfulcrunch/wth.png – user1472219

回答

0

我不薄這是很好的做法,修改對象的功能臨危作爲PARAM,至少不用再返回對象。更好的方法是使該函數成爲日誌對象的一種方法。

like logObject.updateChangeLog(currentRecord);

的updateChangeLog將containt ... 如果 self.original_fields =記錄(self.original_fields!); ... 但記得初始化logObject original_fields爲false或nil。

+0

我想你在說什麼是對的。也許它不會讓你改變堆棧上的對象,所以你不會搞亂堆棧中較低的東西/與異步調用有關。無論如何,克隆日誌功能的開始解決了問題。返回JSON.parse(JSON.stringify(object)) – user1472219