2017-05-03 4 views
0

私はパラメータとしてオブジェクトを受け取る関数を持っています。オブジェクトには、わからない多くのプロパティとメソッドを含むデフォルト値があります。しかし、私はそのプロパティの一つを知っていて、プロパティを変更してデフォルトのオブジェクトを渡したいと思います。どうすればいいのですか?例えばのために...この場合1つの値だけを変更する関数にパラメータとして新しいオブジェクトを渡す

class DataFactory() { 
 
    private static getData(data) {} // data is an object having default set properties 
 
} 
 

 
// Somewhere in my other module 
 

 
function blabla() { 
 
    let name = 'Hello' 
 
    let newData = DataFactory.getData(changedObj) 
 
    //.... other stuffs 
 
} 
 

 
// here the changedObj is the default object with only the property called 'name' modified.

答えて

1
changedObj = Object.assign({},changedObj, {name: 'new name'}); 

それとも

changedObj['name'] = 'New Name'; 
+0

は、* changedObj *唯一の他のプロパティつのプロパティを持っていないではないだろうデフォルト*データ*渡したいオブジェクト? * changedObj *を* data *オブジェクトにマージし、* data *オブジェクトを関数に渡しますか?ありがとうございました:) – Jamie

+1

@Jamie [Object.assign docs](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) – James

+0

'changedObj = {...を使用することを検討してくださいchangedObj、名前: 'new name'}; 'これははるかにクリーンであり、突然変異を防ぐためにダミーオブジェクトを必要としません –

関連する問題