js看输出,前端实习面试题

const shape = {
    radius: 10,
    pada() {
        return this.radius * 2;
    },
    xiada: () => { return this.radius * Math.PI * 2 }
}
console.log(shape.pada()); //20
console.log(shape.xiada()); //NAN
求大佬解答,为啥第二个输出是NAN啊,我作用域这块儿经常整不明白😫#前端实习##面试题##面试##面试题目#
全部评论
这不就是问this指向么,箭头函数不绑定this,里面的this.radius是undefined,跟数字相乘就是nan
5 回复 分享
发布于 2022-06-14 12:05
第二个xiada是箭头函数,this。radius往上一级(widow)查找这个this.radius,widow没有所以这个this.radius就是undefined,进行算数就是nan
1 回复 分享
发布于 2022-07-04 00:26
箭头函数没有自己的this,因而会沿用外部作用域的this(此处指向window/global对象),然而该对象并没有radius属性,进行数***算返回Nan
2 回复 分享
发布于 2022-06-19 19:13
this.radius的this是window,然后undefined去乘,结果就是NaN
点赞 回复 分享
发布于 2022-07-25 18:15
@知zzzz
点赞 回复 分享
发布于 2022-07-23 15:55
在网上查查,箭头的this不是调用者决定,是定义后是,外层this,而且箭头函数this也是不能修改的
点赞 回复 分享
发布于 2022-07-22 20:53
箭头函数中this指向是指向上一级作用域的this,而对象不够成作用域链,所以this指向了window
点赞 回复 分享
发布于 2022-07-21 10:20
你去了解一下箭头函数的this指向问题就行了
点赞 回复 分享
发布于 2022-07-05 07:42
const里面的值不能被修改
点赞 回复 分享
发布于 2022-06-30 17:53
哎。这么点我都看不懂
点赞 回复 分享
发布于 2022-06-11 20:55

相关推荐

昨天 10:54
浙江大学 运营
点赞 评论 收藏
分享
评论
6
6
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务