美文网首页
函数定义方式

函数定义方式

作者: 时间的溺水者 | 来源:发表于2020-05-09 13:15 被阅读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箭头函数定义时的作用域就是全局作用域。

    相关文章

      网友评论

          本文标题:函数定义方式

          本文链接:https://www.haomeiwen.com/subject/uncjnhtx.html