<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
/* 函数 */
function fn(){
}
// 删除函数
delete fn;
/* 全局函数 使用null来进行删除
对象上的函数 使用delete删除 清空 */
fn = null;
console.log(fn);
var obj1 = {
fn(){
}
}
obj1.fn = null;
delete obj1.fn //删除属性
console.log(obj1)
document.onclick = function(){
console.log('aaaa');
document.onclick = null;
}
/* 函数的参数 */
// 有限参数
function fn1(a,b,c){
console.log(a,b,c)
}
// 无限参数
function fn2(){
console.log(arguments)
}
fn2(1,2,34)
// 获取剩余的参数 ...arg 接收剩余的无限参数
function fn3(item1,item2,...arg){
console.log(arg);
// console.log(item1,item2)
}
fn3(1,2,3,4,5,);
// 参数默认值 如果没有填入该参数 则赋值为默认的值
/* 必填参数写在最前面 默认值参数写在后面 */
function fn4(a=100,b=101,c=102){
console.log(a,b,c);
}
fn4()
/* 需要类型的话 需要使用typescript */
// 参数是对象 利用结构赋值来进行参数的填写
/* 还有默认值的填写 不注重参数的顺序 但是参数必须是对象
对象的属性名必须和函数中的属性相同 */
function fn5({a,b,c=1999}){
console.log(a,b,c)
}
fn5({a:100,b:109})
/* 参数更加灵活 可以使用各种各样的配置 代码的复用性*/
/* 但是参数的灵活性 就需要对于参数进行各种各样的判断以及处理 */
/* 选择合适的才是最重要的 */
function fn6(elem,style){
for( let item in style ){
switch(item){
case 'width':
case 'height':
case 'left':
case 'top':
// style[item] =
break;
}
}
}
/* 函数中的参数需要前后顺序 */
function fn6(){
console.log('aaaa')
}
// console.log( fn6.constructor === Function );
// console.log( fn6 instanceof Object )
// console.log( fn6 instanceof Function )
function fn7(n){
// 参数列表
// console.log(arguments)
// 解决匿名函数的调用问题 是当前函数
// console.log( arguments.callee );
// 调用当前函数的函数 很少用
// console.log( arguments.callee.caller )
if( !n ) n = 1;
n++
console.log(n)
if( n > 50 ) return;
arguments.callee(n)//递归自己调用自己
}
fn7()
</script>
</body>
</html>
js中 函数的参数
最新推荐文章于 2022-04-28 16:03:12 发布