位置: IT常识 - 正文
推荐整理分享JS中的this指向(js中this指向有几种情况),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:javascript的this指向,js函数的this指向问题,js函数的this指向问题,js函数的this指向问题,彻底弄懂js中的this指向,js中this指向有几种情况,js中this指向有几种情况,js中的this指向问题,内容如对您有帮助,希望把文章链接给更多的朋友!
在js中,this的意思为“这个;当前”,是一个指针型变量,它动态指向当前函数的运行环境。
在不同的场景中调用同一个函数,this的指向也可能会发生变化,但是它永远指向其所在函数的真实调用者;如果没有调用者,就指向全局对象window。
普通函数:关于this,谁调用就指向谁,没有调用者,就指向全局对象window。箭头函数:箭头函数的this指向于函数作用域所用的对象。一、全局环境下的this指向在全局作用域下,this始终指向全局对象window,无论是否是严格模式!congsole.log()完整的写法是window.console.log(),window可以省略,window调用了console.log()方法,所以此时this指向window。
二、函数内的this普通函数内的this分为两种情况,严格模式下和非严格模式下。1. 严格模式下:直接test()调用函数,this指向undefined,window.test()调用函数this指向window。因此,在严格模式下, 我们对代码的的调用必须严格的写出被调用的函数的对象,不可以有省略或者说简写。
2. 非严格模式下:非严格模式下,通过test()和window.test()调用函数对象,this都指向window。
三、对象中的this对象内部方法的this指向调用这些方法的对象,也就是谁调用就指向谁。1. 一层对象:
调用obj.skill()方法,返回值为蒙犽,说明此时this指向obj。
2. 二层对象:
调用skill2()方法的顺序为,obj.obj2.skill2() ,返回值为鲁班,说明skill2()方法中的this指向obj2。
总结:
函数的定义位置不影响其this指向,this指向只和调用函数的对象有关。
多层嵌套的对象,内部方法的this指向离被调用函数最近的对象。
四、箭头函数中的this箭头函数:this指向于函数作用域所用的对象。箭头函数的重要特征:箭头函数中没有this和arguments,是真的没有!
箭头函数没有自己的this指向,它会捕获自己定义所处的外层执行环境,并且继承这个this值,指向当前定义时所在的对象。箭头函数的this指向在被定义的时候就确定了,之后永远都不会改变。即使使用call()、apply()、bind()等方法改变this指向也不可以。
例子1:
上一篇:CVPR2023论文速递(2023.3.23)!已接入ChatGPT总结!共26篇!(cvpr2021录用文章)
下一篇:Win11右键图标没反应怎么办?Win11桌面图标右键点不出来的解决方法(win11右键没了)
友情链接: 武汉网站建设