js 函数的参数

2020-06-21  本文已影响0人  pengkiw

1 参数默认值

function foo(x, z, y = 5) {
    console.log(x, y, z); //1 5 3
}
foo(1, 3);

2 与解构赋值结合

function foo({ x, y = 5 }) {
    console.log(x, y);  //1 6
} 
foo({ x: 1, y: 6 });
function ajax(url, {
    body = '',
    method = 'GET',
    headers = {}
} = {}) {
    console.log(url) // baidu.com
    console.log(method) // POST
}
ajax('baidu.com', {
    method: 'POST'
})

3 length属性长度 (指函数没有指定默认参数值的个数)

function foo(x, y) {
    console.log(x, y) //2
}
console.log(foo.length); // 指函数没有指定默认参数值的个数
function foo1(x = 1, y = 2) {
    console.log(x, y) //0 
}
console.log(foo1.length); // 指函数没有指定默认参数值的个数

4 参数作用域 (可以把形参看成一个局部作用域)

let x = 1;

function foo(x, y = x) {
    console.log(y) //2
}
foo(2)
function foo(y = x) {
    let x = 1; 
    console.log(y)  //1
}
foo()
function foo(y = x) { // ReferenceError: x is not defined
    let x = 2; 
    console.log(y) 
}
foo()

5 bind (改变this指向)

function foo() {
    console.log(this); //name: "kiw"}
}
foo.bind({
    name: 'kiw',
})()

6 name属性

function foo(x, y) {
    console.log(this, x, y); 
}
console.log(foo.name) // foo
console.log(foo.bind({}).name) //bound foo
上一篇 下一篇

猜你喜欢

热点阅读