美文网首页
每日一题(2)

每日一题(2)

作者: 欢欢小天使K | 来源:发表于2020-04-02 13:46 被阅读0次

来康康这道题吖

涉及到知识点:this指向,逗号表达式,赋值表达式,运算符优先级

var a = 10;
var foo = {
    a: 20,
    bar: function(){
        var a = 30;
        return this.a;
    }
}
console.log(foo.bar());
console.log((foo.bar)());
console.log((foo.bar = foo.bar)());
console.log((foo.bar, foo.bar)());

答案:

打印结果:20 20 10 10

第一问:
调用点运算符和函数调用运算符优先级都是19,所以foo.bar指的 function(){ var a = 30; return this.a; },此时的this指向是foo对象,故打印20;
第二问:
加了圆括号运算符,按照从左故 同第一问没区别,打印20;
第三问:
(foo.bar = foo.bar)相当于foo.bar = function(){ var a = 30; return this.a; },this指向window,故打印10;
第四问:

逗号操作符 :对它的每个操作数求值(从左到右),并返回最后一个操作数的值。

(foo.bar , foo.bar),第三问、第四问 经过赋值、逗号运算后,括号内的运算结果都是一个纯粹的函数了,而不是对象方法的引用,所以this指向window,故打印10;

相关文章

  • 每日一题: Piscasso框架

    每日一题: Piscasso框架 GlideFrescoPicasso_1Picasso_2 面试率: ★★★☆☆...

  • 20200323订正须知

    1.基础作业 2.小状元 3.每日一题

  • Day 4 Project 我的微信好友

    附:每日一题

  • 每日一题(2)

    来康康这道题吖 涉及到知识点:this指向,逗号表达式,赋值表达式,运算符优先级 答案: 打印结果:20 20 1...

  • 每日一题(2)

    老师说这也是一道送分题,奇怪耶,现在的送分题都这么难的吗?

  • 晨间日记

    1.小报,数学日记,数独比赛 2微信记账 3.小教研,板书,每日一题补上

  • Leetcode每日一题(2)

    5490. 吃掉 N 个橘子的最少天数 厨房里总共有 n 个橘子,你决定每一天选择如下方式之一吃这些橘子: 吃掉一...

  • 每日一题2020-04-20

    每日一题 var obj = {x: 1, y: 2, z: 3};[...obj]能否以某种方式为上面的语句是用...

  • 每日一题-2017-09-01

    2017.9.1每日一题: A senior manager responsible for business t...

  • 28180322复盘第126天

    每日三目标: 1.演讲练习 2.学习2小时 3.每日一题复盘 感觉不做这三件事一天没成长或者在虚度。 计划好的运动...

网友评论

      本文标题:每日一题(2)

      本文链接:https://www.haomeiwen.com/subject/aimzuhtx.html