函数定义方式

2020-05-09  本文已影响0人  时间的溺水者
函数定义方式:

1、自定义函数

function fn () {
  
}

2、函数表达式

let fun = function () { }

3、利用new Function('参数1', '参数2', '函数体')

let f = new Function('a', 'b', 'console.log(a + b)')

所有的函数都是Function的实例
f(1,2) // 3
image.png
函数内this的指向

调用方式不同则决定了this的指向不同,一般指向调用者

image.png image.png
const cat = {
  lives: 9,
  jumps: () => {
    this.lives--;
  }
}

调用cat.jumps()时,如果是普通函数,该方法内部的this指向cat;如果写成上面那样的箭头函数,使得this指向全局对象,因此不会得到预期结果。这是因为对象不构成单独的作用域,导致jumps箭头函数定义时的作用域就是全局作用域。

上一篇 下一篇

猜你喜欢

热点阅读