js this 阮一峰_[JavaScript]JS中的函数

9d911b61382be31bec0ed68dc7592f43.png

函数是什么?

按阮一峰老师的话来说:函数是一段可以反复调用的代码块。函数还能接受输入的参数,不同的参数会返回不同的值。

函数的声明

  1. 具名函数
function x(){
  函数内部代码
  return undefined // 函数必须有返回值,若没写则默认返回undefined
}

2. 匿名函数

var x = function (){
  return undefined
}

3.

var x = function y(){
  // 此时的y只在函数内部存在
  return undefined
}
console.log(y) // not defined

4.构造函数

var x = new Function('return undefined') // 不带参数
var x = new Function('x','y','return x+y') // 带参数

5.箭头函数

var x = (x,y) => { return x + y } // () 内的为参数,{} 内的为函数体
var x = (x,y) => x + y // 当函数体只有一个 return 语句时可以不写 '{}' 和 'return'
var x = x => x*2 // 当参数只有一个时,可以省略 '()'

所有函数都有name属性,按照上面的顺序分别时

  1. x.name='x'
  2. x.name='x'
  3. x.name='y'
  4. x.name='anonymous'
  5. x.name='x'

函数的使用

JS 将函数的函数体和参数存储在内存中,通过 Function.prototype 中的 call() 属性来调用,而我们日常使用最多的 () 则是它的语法糖。

var f = function(x,y){
  return undefined
}
f(1,2) 
f.call(undefined,1,2) // 两者相等

在 call() 的参数中,一个参数在函数中可以用 this 得到,之后的参数则可以使用 arguments 以数组的形式得到。

var f = function(x,y){
  console.log(this)
  console.log(arguments)
}
f.call(1,2,3)
// 1
// [2,3]

在普通模式下,如果一个参数传入 undefined,this 的值是 window 全局变量,而在严格模式下,则就是 undefined。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值