【JavaScript】执行上下文中this的绑定

    科技2025-03-14  28

    【默认绑定】

    即为直接调用,函数调用无调用前缀,则this指向全局对象window(严格模式中指向undefined)

    【隐式绑定】

    如果函数调用,存在调用的对象,则this会隐式的绑定到这个对象上

    function f() { console.log(this.a); } var s = { a: 1, fs: f } s.fs(); // 输出1

    PS:如果将函数作为形参或者赋值给了其他参数,则调用的时候不会发生隐式绑定,而是算作直接调用,this指向全局对象

    【显式绑定】

    指的是我们通过调用call(),apply(),bind()等方法改变this的行为

    PS:bind方法返回一个新的函数对象,而且新的函数对象无法再被修改this指向,call与apply方法相同,但apply方法参数是一个数组,需要先解析一遍数组

    【New绑定】

    new一个函数,首先根据构造器的prototype属性创建一个新对象,然后执行构造方法,这个时候新对象中的this会指向新对象

    【箭头函数的绑定】

    箭头函数中的this会寻找到父作用域中this的指向去绑定,且无法改变

    【优先级】

    显式绑定 > 隐式绑定 > 默认绑定

    new绑定 > 隐式绑定 > 默认绑定

    【参考文档】

    https://www.cnblogs.com/echolun/p/11962610.html

    Processed: 0.011, SQL: 8