這有點奇怪。我確定我錯過了一些編程的基本概念,但不知道最新的是什麼。因爲直到現在我從來沒有面對過這個問題。第二次調用常規方法時,對象值被覆蓋
讓我通過編程解釋一下我的問題:
var result = {abc: 10, cde: 20, efg: 30};
var final_result = {};
var customFunction1 = function(results){
console.log(results);
return results; // result= {abc: 10, cde: 20, efg: 30}
};
var customFunction2 = function(results){
results.cde = 100;
results.efg = 500;
return results; // {abc: 10, cde: 100, efg: 500}
};
final_result.result1 = customFunction1(result);
final_result.result2 = customFunction2(result);
console.log(final_result);
在上面的程序中,我傳遞的結果參數的功能,和存儲在它「final_result.result1」的返回值。 但是,當我使用相同的參數調用不同的函數時,這會被覆蓋。 什麼我得到的輸出是:
{ 「RESULT1」:{ 「ABC」:10, 「CDE」:100, 「EFG」:500}, 「結果2」:{ 「ABC」:10 「CDE」:100, 「EFG」:500}}
預期O/p是: { 「RESULT1」:{ 「ABC」:10, 「CDE」:20, 「EFG」:30 },「result2」:{「abc」:10,「cde」:100,「efg」:500}}
爲什麼final_result.result1的值被result.result2覆蓋。
JSBin http://jsbin.com/mepizecuka/edit?js,console
Plunkr http://plnkr.co/edit/BF0UNnacV9UeXtyk3stI?p=preview
任何人都可以請幫我這裏。
http://jsbin.com/gofakajiqe/edit?js,console預期輸出是我看到的唯一輸出。另外這可能有助於https://stackoverflow.com/questions/13104494/does-javascript-pass-by-reference – bassxzero
讓我添加屏幕截圖和或plunkr – undefined
沒有必要添加屏幕截圖或plunkr。根據您提供的代碼獲得預期結果,如我的jsbin鏈接所示。如果您提供的代碼沒有產生錯誤,那麼這可能是其他問題,或者您需要更新問題中的代碼。 – bassxzero