代碼var choosed = null; // 1EventUtil.addHandler(lists, 'click', cancel.bind(null, choosed)); // 2EventUtil.addHandler(delSure, 'click', delNote.bind(null, choosed)); // 3問題描述第一行代碼用于保存被點擊的按鈕 choosed為全局變量每次都是第二行代碼先被點擊,此時在cancel函數中改變了choosed的值,指向了被點擊的dom元素,此時第三行代碼被點擊,需要獲取choosed的值,發現,choosed = null,預期的結果第三行代碼執行的時候choosed應該等于被第二行代碼改變過的值,而不是null進行的調試懷疑choosed = null沒有是原始值,于是改為了choosed = {},結果仍然不對,于是參考網友的回答,將代碼改為:choosed = {} // 1 第二行改變時改為:choosed.a = '',結果choosed.a在第三行能獲取到,顯然這種是引用值,那么為啥choosed = null;或者choosed = {}是原始值呢問題原始值和引用值怎么區分的?,choosed = null;或choosed = {},我是把這當做原始值的
js異步函數傳參的問題
MYYA
2019-01-04 22:19:08