资讯专栏INFORMATION COLUMN

一道this的题目

ityouknow / 537人阅读

摘要:那么下面的代码呢在这里在的前面添加了,这个函数就变成了一个构造函数,是一个由构造器创建的一个实例,所以在这里指向了

请问下面代码中的this值指向的是全局对象还是对象o?

function F () {
    function C() {
        return this;
    }
    return C();
}
var o = new F();
console.log(o.constructor.name); // Object

这里的this指向全局对象,因为 C() call without new。
这里用正常的方式调用的函数 C() ,所以this指向全局对象。
那么下面的代码呢?

function F () {
    function C() {
        console.log(this);  // C {}
        return this;
    }
    return new C();
}
var o = new F();
console.log(o.constructor.name); // C

在这里在 C() 的前面添加了 new ,这个函数就变成了一个构造函数,this 是一个由 C() 构造器创建的一个实例,所以在这里 this 指向了o

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/80751.html

相关文章

  • 说说牛客上一道 JavaScript 题目

    摘要:原文牛客上有这么一道的题目。先来分析一下题目,和都从来,为什么同名的属性值不一样可以看出,是对这个函数的调用方式不一样,是函数的调用结果,而则是作为构造函数调用的结果。所以这题的重点应该是如何区分函数调用和构造函数调用。 原文:http://blog.e10t.net/talk-abo... 牛客上有这么一道 JavaScript 的题目。 //填写内容让下面代码支持a.name = ...

    jk_v1 评论0 收藏0
  • 一道有价值JS继承面试题

    摘要:题目原题目来源于一个网友的问答补充代码我有个我有个分析题目希望生成一个新的构造函数,继承于。尽量不要更改题目表达出希望有方法实现构造函数继承,又需要原型继承。的指向显然要改成指向子类构造函数中的。 题目 原题目来源于一个网友的问答 var A = function() { this.name = apple; } A.prototype.getName = function()...

    darkbug 评论0 收藏0
  • 一道关于javascript数据类型题目思考

    摘要:感觉这个题目涉及的基础知识内容比较多,故分享出来,后面会详细介绍数据类型的文章,欢迎关注。实现一个函数,可以对中的种主要的数据类型包括进行值复制。 感觉这个题目涉及的基础知识内容比较多,故分享出来,后面会详细介绍数据类型的文章,欢迎关注。 实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)...

    ralap 评论0 收藏0
  • 一道前端JS题目

    摘要:返回值对象指代的是调用这个函数的对象,在这里相当于,则相当于而的已经被赋值为,所以结果就为。 做过很多前端笔试题,有些题看起来简单,就是读程序写结果,但要么做错,要么对答案不确定,这里找到一道比较综合的题目 function Foo() { //定义了一个名叫Foo的函数 getName = function () { alert (1); }; //(1)函数内定义了一...

    2json 评论0 收藏0
  • 一道面试题认识函数柯里化

    摘要:函数柯里化在函数式编程中,函数是一等公民。函数柯里化的主要作用和特点就是参数复用提前返回和延迟执行。可能在实际应用场景中,很少使用函数柯里化的解决方案,但是了解认识函数柯里化对自身的提升还是有帮助的。 最近在整理面试资源的时候,发现一道有意思的题目,所以就记录下来。 题目 如何实现 multi(2)(3)(4)=24? 首先来分析下这道题,实现一个 multi 函数并依次传入参数执行,...

    13651657101 评论0 收藏0

发表评论

0条评论

ityouknow

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<