(27)进阶:函数

函数的五种声明方式

     

1.具名函数

     function f(x,y){
        return x+y
    }
    f.name // 'f'
2.匿名函数

    var f
    f = function(x,y){   //匿名函数必须赋值一个变量 
        return x+y
     }
    f.name // 'f'

3.具名函数赋值

     var f
      f = function f2(x,y){ return x+y }   //f是函数,f2是未定义的
      f.name // 'f2'
     console.log(f2) // undefined

4.window.Function    //Function是函数对象 

    var f = new Function('x','y','return x+y')
    f.name // "anonymous"

    n = 1
    new Function('x','y','return x+'+n+'y')
    f(1,2)   //4

5.箭头函数

     var f = (x,y) => {
         return x+y
     }
     var sum = (x,y) => x+y
     var n2 = n => n*n

    f = (x,y) => {
         var n = x * 3
         var m = y * 2
             return n+m
    }

函数的name属性

函数的本质

     f(1,2) = f.call(undefined,1,2)

this 和 arguments

function f(){
    'use strict'  //严格模式下 this为call的第一个参数 如果是在普通模式下 this会被当成window
    console.log(this)
    console.log(arguments)
    return undefined
}
f.call(1,2,3) // this 为 1,arguments 为 [2,3]

call stack 调用栈

作用域

搜索 方应杭 闭包

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值