千锋教育JavaScript全套视频教程(10天学会Js,前端javascrip

关于this指向的一切:
在JavaScript中,this是一个特殊的关键字,它在函数执行时确定其指向的对象。它的值在每次函数被调用时可能会不同,取决于调用函数的方式。以下是关于this指向的一切:
全局环境中的this:
在全局环境中(没有嵌套在其他函数内部),this通常指向全局对象,比如浏览器环境中的window对象或Node.js环境中的global对象。在严格模式下,全局环境中的this将是undefined。
函数调用中的this:
当函数被作为普通函数调用时,this通常指向全局对象。在严格模式下,函数调用中的this会是undefined,这是为了避免意外的全局变量修改。
方法调用中的this:
当函数作为对象的方法调用时,this指向调用该方法的对象。
构造函数中的this:
当使用new关键字调用构造函数创建一个新对象时,this会指向新创建的对象实例。
箭头函数中的this:
箭头函数没有自己的this绑定机制,它会捕获所在上下文的this值,因此在箭头函数中,this的指向与外部作用域保持一致。
改变this指向
call()、apply()和bind():
call()、apply()和bind()是函数对象的方法,用于显式地设置函数执行时的this指向。
call()方法接受一个指定的this值和逗号分隔的参数列表,其中this指向传递的第一个参数。
函数会立即执行
apply()方法与call()类似,但它接受一个指定的this值和参数数组,其中this指向传递的第一个参数。
bind()方法不会立即调用函数,而是创建一个绑定了指定this值的新函数,稍后可以再次调用该新函数。
箭头函数的this值无法改变因为他没有自己的this指向