关于阻止页面刷新或关闭的某种写法看不懂
在项目中看到这样一种阻止页面刷新/关闭的方法,我能知道它最终实现的效果但是不能理解它的写法。
在网上搜索Object.assign()
得到的是用于合并对象(例子),
在这里为什么要和e
绑定而且也没有变量接收这个合并值,就有点不能理解。
还请前辈指导一下 :-)
...
mounted() {
const returnValue = 'Are you sure you want to lose unsaved changes?';
window.onbeforeunload = e => {
if (!this.changedFiles.length) return undefined;
Object.assign(e, {
returnValue,
});
return returnValue;
};
},
...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Object.assign
在这里完全等价于
e.returnValue = returnValue
。returnValue
就是为了兼容性
https://developer.mozilla.org...
合并对象的时候,会改变
e
的值,增加了returnValue
属性,创建自定义信息;在window 对象上添加事件,是使用returnValue 属性创建自定义信息的
自定义信息

在即将离开当前页面(刷新或关闭)时执行对象合并,或许在后续操作中会用到returnValue值做一些逻辑操作吧;目前看代码只看见了合并这段,没有看见后面的一些相关操作,就只能判断可能会是后续操作会用到做一些逻辑处理