Javascript赋值运算符不工作
log.original_字段始终为空。为什么?Javascript赋值运算符不工作,javascript,ecma262,Javascript,Ecma262,log.original_字段始终为空。为什么? var updateChangeLog = function(log, currentRecord) { var records, record; if(!log.original_fields) { records = ["a","b"]; log["original_fields"] = records; // log.original_fields = records; // doesn
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;
}
}
我不认为修改函数作为参数接收的对象是一种好的做法,至少在不返回对象的情况下。更好的方法是使函数成为log对象的方法 比如logObject.updateChangeLogcurrentRecord updateChangeLog将包含 ... 如果self.u字段 self.original_字段=记录; ...
但请记住将logObject原始_字段初始化为false或nil。您将向updateChangeLog函数传递什么?日志是一个对象吗?是的,你一定设置错了,对我有用:它允许我修改新属性,但我不能对现有属性做任何事情。对象是来自web sql的记录。我认为你说的是对的。也许它不允许您更改堆栈上的对象,这样您就不会弄乱堆栈上较低的部分/与异步调用有关的部分。无论如何,在函数开始时克隆日志解决了问题。返回JSON.parseJSON.stringifyobject