Javascript don';传递函数后不改变对象

Javascript don';传递函数后不改变对象,javascript,object,constants,Javascript,Object,Constants,为什么myObject发生了变化?我不想更改它问题是对象是通过引用传递的。如果不希望函数修改输入参数,可以在将对象传递给函数之前制作对象的深度副本。或者更好 您应该在myObject下定义foo属性,如下所示 myObject = {foo: foo, bar: bar} function myFunc(obj){ obj.foo = 'new foo'; } myFunc(JSON.parse(JSON.stringify(myObject))); Object.definePr

为什么myObject发生了变化?我不想更改它

问题是对象是通过引用传递的。如果不希望函数修改输入参数,可以在将对象传递给函数之前制作对象的深度副本。或者更好


您应该在
myObject
下定义
foo
属性,如下所示

myObject = {foo: foo, bar: bar}

function myFunc(obj){
    obj.foo = 'new foo';
}

myFunc(JSON.parse(JSON.stringify(myObject)));
Object.defineProperty(myObject,'foo',{
值:“”
可配置:false,
可写:false,
});
configurable
属性告诉您是否可以删除属性及其属性(可写属性除外)


writeable
属性告诉您是否可以更改属性值。

这是什么语言?如果您不想更改它。。。不要改变它。
myObject = {foo: foo, bar: bar}

function myFunc(obj){
    obj.foo = 'new foo';
}

myFunc(JSON.parse(JSON.stringify(myObject)));
Object.defineProperty(myObject, 'foo', {   
  value: '<value u want to put for this object>'
  configurable: false,
  writable: false,
});