每天一道面试题——JavaScript的this指向【一】

简介: 每天一道面试题——JavaScript的this指向【一】

前言

关于JavaScript的this指向问题,建议手动操作打印下

每天一道面试题,以后只更新于微信订阅号"夜雨成诗",点击右面的扫码关注即可

内容

题目

var name = '222'
var a = {
  name: '111',
  say: function() {
    console.log(this.name)
  }
}
var b = {
  name: '333',
  say: function(fn) {
    fn()
  }
}
a.say()
b.say(a.say)

答案

a.say() //111
b.say(a.say) //222

解析

a.say()//this指向a,所以console.log(this.name)打印的值为111
b.say(a.say) //将a.say函数作为参数传给b.say(),而b.say中调用fn(),fn()并没有绑定在某一对象上,所以执行时this指向了window,因此执行a.say的时候,a.say()中的this指向window,所以打印的值也就是222

结论

那么this有哪些指向呢?

1. 在非严格模式下,全局作用域下的普通函数的this指向window,严格模式下,this为undefined的。
2. 在对象中,this指向被调用的对象。
3. 在构造函数中,this指向实例对象。
4. 在箭头函数中,this指向外层作用域的this。

学无止境,谦卑而行.

目录
相关文章
|
7月前
|
前端开发 JavaScript 程序员
【面试题】对JavaScript中for in与for of的理解
【面试题】对JavaScript中for in与for of的理解
|
7月前
|
JSON 前端开发 JavaScript
【JavaScript】面试手撕深拷贝(2),2024年最新nacos面试题及答案
【JavaScript】面试手撕深拷贝(2),2024年最新nacos面试题及答案
【JavaScript】面试手撕深拷贝(2),2024年最新nacos面试题及答案
|
7月前
|
前端开发 JavaScript
JavaScript:this-关键字,2024中级前端开发面试解答
JavaScript:this-关键字,2024中级前端开发面试解答
|
7月前
|
JSON JavaScript 前端开发
【JavaScript】面试手撕深拷贝(1),面试前必看的一本书书籍是什么
【JavaScript】面试手撕深拷贝(1),面试前必看的一本书书籍是什么
|
7月前
|
JavaScript 前端开发 程序员
javascript基础(入门),当上项目经理才知道,推荐程序员面试秘籍
javascript基础(入门),当上项目经理才知道,推荐程序员面试秘籍
|
7月前
|
存储 JavaScript 前端开发
【JavaScript】面试手撕浅拷贝
引入 浅拷贝和深拷贝应该是面试时非常常见的问题了,为了能将这两者说清楚,于是打算用两篇文章分别解释下深浅拷贝。 PS: 我第一次听到拷贝这个词,有种莫名的熟悉感,感觉跟某个英文很相似,后来发现确实Copy的音译,感觉这翻译还是蛮有意思的
77 6
|
7月前
|
JavaScript 前端开发
【JavaScript】面试手撕节流
上篇我们讲了防抖,这篇我们就谈谈防抖的好兄弟 -- 节流。这里在老生常谈般的提一下他们两者之间的区别,顺带给读者巩固下。
83 3
|
7月前
|
JavaScript 前端开发 索引
【JavaScript】面试手撕数组原型链(易)
续借上文,这篇文章主要讲的是数组原型链相关的考题,有些人可能会纳闷,数组和原型链之间有什么关系呢?我们日常使用的数组forEach,map等都是建立在原型链之上的。举个🌰,如我有一个数组const arr = [1,2,3]我想要调用arr.sum方法对arr数组的值进行求和,该如何做呢?我们知道数组没有sum函数,于是我们需要在数组的原型上定义这个函数,才能方便我们调用,具体代码如下。接下来我们就是采用这种方式去实现一些数组常用的方法。
71 6
|
7月前
|
前端开发 JavaScript 算法
【JavaScript】面试手撕数组排序
这章主要讲的是数组的排序篇,我们知道面试的时候,数组的排序是经常出现的题目。所以这块还是有必要进行一下讲解的。笔者观察了下前端这块的常用算法排序题,大概可以分为如下
52 2
|
7月前
|
JavaScript 前端开发
【JavaScript】面试手写题精讲之数组(上)
该专题主要是讲解我们在面试的时候碰到一些JS的手写题, 确实这种手写题还是比较恶心的。有些时候好不容易把题目写出来了,突然面试官冷不丁来一句有没有更优的解法,直接让我们僵在原地。为了解决兄弟们的这些困扰,这个专题于是就诞生啦。我们会将一些常见的不是最优解的答案作为对比,方便大家更好理解。
77 3
下一篇
DataWorks