如何覆盖对象的属性值的JavaScript

问题描述:

我有功能低于如何覆盖对象的属性值的JavaScript

success: function (file, data) { 

    file.name=data; 
    console.log(data); 
    console.log(file.name); 
    console.log(file); 

} 

“文件”对象和“数据”是简单的字符串。我想覆盖文件名,例如file.name的值为“test”,数据的值为“umar”。现在,在第一行中,我将数据值分配给文件file.name=data;,但是当我再次打印file.name时,我又将geting值“test”。这意味着价值没有被覆盖。为什么?

+0

'file'是在你的函数范围之外声明的对象的名字吗? –

+0

你能提供更多的代码吗?最好能看到有效的例子。您可以使用jsfiddle.com或jsbin.com – Microfed

+0

我们需要更多的上下文 – epascarello

所有其他条件相同,这将正常工作:

var x = { 
 
    success: function(file, data) { 
 
    file.name = data; 
 
    console.log(data); 
 
    console.log(file.name); 
 
    console.log(file); 
 
    } 
 
} 
 

 
x.success({ 
 
    name: "Hello" 
 
}, "World");

...如果它不那么name属性将是只读,并没有太多可以要做的就是使用不同类型的对象。

+0

在这种情况下,他可以创建对象的深层副本,但不能读取。 –