亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

js異步函數傳參的問題

js異步函數傳參的問題

MYYA 2019-01-04 22:19:08
代碼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 = {},我是把這當做原始值的
查看完整描述

1 回答

?
白板的微信

TA貢獻1883條經驗 獲得超3個贊

雖然 typeof null === 'object', 但是并不能把 null 當一個引用值用,這是個歷史遺留問題,如 null.a = 1; 會報錯的;

之前的回答刪錯了 ╮( ̄▽ ̄")╭


查看完整回答
反對 回復 2019-01-04
  • 1 回答
  • 0 關注
  • 687 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號