当前位置 博文首页 > 前端开发博客:JS 每日一题 #12

    前端开发博客:JS 每日一题 #12

    作者:[db:作者] 时间:2021-07-03 22:00

    这是一个从基础到进阶的JavaScript问题列表,题源来自Github的 JavaScriptQuestions,有32K star。

    前端开发博客 打算每日更新一道题,一起来学习打卡吧。如果觉得内容对你有帮助,欢迎转发给你的朋友!

    查看一周汇总


    12. 输出是什么?
    function?Person(firstName,?lastName)?{
    ??this.firstName?=?firstName
    ??this.lastName?=?lastName
    }
    
    const?lydia?=?new?Person('Lydia',?'Hallie')
    const?sarah?=?Person('Sarah',?'Smith')
    
    console.log(lydia)
    console.log(sarah)
    
    • A: Person {firstName: "Lydia", lastName: "Hallie"} and undefined

    • B: Person {firstName: "Lydia", lastName: "Hallie"} and Person {firstName: "Sarah", lastName: "Smith"}

    • C: Person {firstName: "Lydia", lastName: "Hallie"} and {}

    • D:Person {firstName: "Lydia", lastName: "Hallie"} and ReferenceError


    答案: A

    对于 sarah,我们没有使用 new 关键字。当使用 new 时,this 引用我们创建的空对象。当未使用 new 时,this 引用的是全局对象(global object)。

    我们说 this.firstName 等于 "Sarah",并且 this.lastName 等于 "Smith"。实际上我们做的是,定义了 global.firstName = 'Sarah'global.lastName = 'Smith'。而 sarah 本身是 undefined

    凡是点了“在看”者,点击下方“进入公众号”,发送消息并回复“答案”这两个字,就会蹦出答案。

    点个“在看”,支持我们

    cs