为了账号安全,请及时绑定邮箱和手机立即绑定

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 关注
  • 671 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信