千锋教育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指向