new new Foo().getName() 怎么理解

看到一道面试题,提炼出来的结果是

function Foo(){
  var getName = function(){console.log(1)}
  return this
}
  
Foo.prototype.getName = function(){
  console.log(3)
}
new Foo().getName()
new new Foo().getName()

经过测试,我目前个人觉得new()是配套的关系,就像写代码时{([()])}出现这种多层嵌套时的配套关系,而且是从中心往外去配套。意思就是对于new Foo().getName()来说,并不是如我最初所想的,等价于


var a = Foo().getName
new a() //这是错的

而是等价于

var a = new Foo()
a.getName() //这是对的

对于new new Foo().getName(),其等价于

var a = new Foo()
var b = a.getName
var c = new b()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,162评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 35,213评论 18 399
  • 最近在网上看了一道有关前端的面试题感觉很不错,就在这里分享给大家。 题目: function Foo() { g...
    穿越人海遇见你阅读 1,058评论 0 12
  • 各位医生大家好! 罗老师首次《合学在临床中的应用》直播课已圆满结束,医生们提的问题,罗老师均语音回复了,我们将语音...
    松鼠牙医学院阅读 1,811评论 0 0
  • 思念伊人泪两行 不知伊人在何方
    我爱上她阅读 259评论 0 0

友情链接更多精彩内容