跳至主要內容

封装默认对象属性

chanchaw小于 1 分钟javascript

概述

封装一个微信小程序的异步请求,填充默认值,优先采用调用者自定义的属性

源码

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>覆盖对象属性</title>
</head>
<script>
function reqWrapper(data){
	const o = {sigt:'11',sigm:'msg'};
    
    data = data ?? {};
    const customHeader = data.header ?? {};
	return {
		...data,// 保留调用者自定义的所有属性
        // 先设置默认属性,再使用调用者自定义的 header 属性进行覆盖
        // 即优先使用调用者自定义属性(自定义属性覆盖默认属性)
		header: {
            ...o,
			...customHeader,
		}
	}
}

function req01(){
	const ret = reqWrapper({
		header: {
			'content-type':'charset=utf-8',
			'sigt':'22'
		},
		url:'www.baidu.com',
		data:'我是参数'
	})

	console.log(ret);
}

req01();
</script>
<body>
<h1>测试覆盖对象属性</h1>
</body>

</html>