27 JS函数

2021-01-21  本文已影响0人  卢卢2020

四种方式定义函数    

    1 具名函数

function 函数名(形参1,形参2){

语句

return 返回值

}

    2 匿名函数

var a = function(x,y){

return x+y

}


    3 箭头函数

let f1 = x => x*x

let f2=(x,y)=> x+y // 两个形参时圆括号不能省

let f3 = (x,y) => {return x+y}  //有花括号时必须要加上return

如果一个函数返回值是一个对象 那么直接用let f4 = x => {name:x} 会报错 有两种方法可以解决 一种是({name:x})用圆括号把{name:x}包起来 第二种是{return {name:x}} 加一个大括号 但是{}里面必须要加return 不然它的值为undefined

let f4 = x => ({name:x})    //

f4('lulu') //lulu   

let f5 =x =>{return {name:x}}  

f5('liwu')//liwu

    4 构造函数

let f=new Function('x','y','return x+y') 

基本没人用,但是能让你知道函数是谁构造的

所有函数都是Function 构造出来的

包括Object、 Array 、Function 也是

arguments和this

function fn(){

console.log(arguments)   

console.log(this)

}

fn(1,2)

    1 如何传arguments

调用fn即可传arguments

fn(1,2,3) 那么arguments就是【1,2,3】伪数组

    2 如何传this

目前可以用 fn.call(xxx,1,2,3) 传this和arguments

而且xxx会被自动转化成对象

this的两种使用方法 

    1 隐式传递

 fn(1,2) //等价于fn.call(undefined,1,2)

obj.child.fn(1) //等价于obj.child.fn.call(obj.child,1) 

     2 显示传递

 fn.call(undefined,1,2)

fn.apply(undefined,[1,2])

箭头函数

    1 里面的this就是外面的this

console.log(this) //window

let fn=()=>{console.log(this)}

fn() // 它的this也是指window

    2 就算你加call 都没有

fn.call({name:'lulu'}) //window    .call里面指定了 但是打印出来的this还是window

上一篇下一篇

猜你喜欢

热点阅读