ajax--参数默认值问题

注:通过参数默认值,能让参数映射更加灵活,有些参数可以不必传递,如果传递则
覆盖默认。并且永远都是后面的覆盖前面的内容
通过$.extend合并对象

语法1: var newobj= $.extend(obj,obj1,obj2,obj3.......);
即大括号中所有的内容会以前面对象的内容为基准,若是有重复的则合并后显示后面
对象的内容(即前面对象的内容被覆盖),不一致的则原样合并输出。


语法2:合并过后不会改变任意对象的内容

var newobj=$.extend({},obj,obj1,obj2..........);

shadow.js

jQuery.fn.shadow_default = function (option) {
//设置默认值对象
var defaults ={
slices:5,
opacity:0.5,
zIndex:-1
};
//合并defaults和option
var opt= $.extend(defaults,option);

//获取到每个已封装的元素
//this表示jQuery对象
this.each(function () {
$obj = $(this);//将遍历出来的元素转换成jQuery对象
//更改i的值:10 20都可以,能够改变阴影效果
for (var i = 0; i <opt.slices; i++) {
var $newObj = $obj.clone();//克隆出来5个新的对象
//确定元素的位置。使用绝对定位,设置top和left的值偏移量大小决定最终的阴影位置
$newObj.css({
position: "absolute",
top: $obj.offset().top + i,
left: $obj.offset().left + i,
zIndex: opt.zIndex,//层级并没有太大关系,
margin: 0,
opacity: opt.opacity
}).appendTo("body");
}
});
}


<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
<script src="js/jquery.min.js"></script>
<script src="js/shadow.js"></script>
<script>
$(document).ready(function () {
// $("h1").shadow();//调用对象方法的效果
// $("h1").shadow_simple(7,0.3,-1);//调用简单参数实现效果,Y用户自己传递参数
// $("h1").shadow_map(10,0.5,-1);//这样直接传递参数是不会识别的,因为这样无法识别到它的属性
//参数映射方式处理
// $("h1").shadow_map({
// slices: 5,
// opacity: 0.5,
// zIndex: -1
// });

$("h1").shadow_default(); //调用参数默认值方法(可以传递参数也可以不传递,不传递就显示默认值,传递了就会覆盖默认值)

dmeo:
//定义对象数组时没有$符号,否则没有效果
var obj1 = {name: "Linda", age: 29, hobby: "apple"};
var obj2 = {name: "Bob", age: 30, gender: "Male"};
//即大括号中所有的内容会以前面对象的内容为基准,若是有一样的则合并后显
// 示后面对象的内容(前面对象的内容被覆盖),不一致的则原样合并输出。
var newObj = $.extend(obj1, obj2);
console.log(obj1);
console.log(obj2);
console.log(newObj);
});

</script>
</head>
<body>
<h1>Hello My Name Is Anny,I am 20 years old!</h1>
</body>
</html>
没有人能一路单纯到底,但是要记住,别忘了最初的自己!
原文地址:https://www.cnblogs.com/LindaBlog/p/9267138.html