技术文摘
这 7 道有关 this 的面试题,你能答对多少?
在 JavaScript 编程中,this 关键字常常让开发者感到困惑,同时也是面试中的热门考点。下面这 7 道有关 this 的面试题,快来看看你能答对多少?
问题 1:普通函数中的 this
在一个普通函数内部,this 指向什么?
答案:在非严格模式下,this 通常指向全局对象(在浏览器中是 window 对象)。在严格模式下,this 为 undefined 。
问题 2:对象方法中的 this
当一个方法被一个对象调用时,this 指向谁?
答案:this 指向调用该方法的对象。
问题 3:构造函数中的 this
在构造函数中,this 有何特殊含义?
答案:this 指向新创建的实例对象。
问题 4:箭头函数中的 this
箭头函数中的 this 是如何确定的?
答案:箭头函数没有自己的 this,它会继承外层函数的 this 。
问题 5:call、apply 和 bind 方法对 this 的影响
使用 call、apply 和 bind 方法可以改变函数的 this 指向,它们的区别是什么?
答案:call 方法接受多个参数,apply 方法接受一个数组作为参数,而 bind 方法返回一个新函数,新函数的 this 被指定。
问题 6:嵌套函数中的 this
如果在一个函数内部定义了另一个函数,内部函数中的 this 指向哪里?
答案:内部函数的 this 取决于它的调用方式,可能是全局对象、调用它的对象或者其他情况。
问题 7:事件处理函数中的 this
在 DOM 事件处理函数中,this 指向什么?
答案:this 指向触发事件的 DOM 元素。
通过对以上 7 道有关 this 的面试题的分析,相信您对 this 的理解会更加深入。在实际编程中,准确把握 this 的指向对于编写正确和可维护的代码至关重要。希望您在面对此类问题时能够轻松应对,顺利通过面试和实际开发中的各种挑战。