美文网首页
new new Foo().getName() 怎么理解

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

作者: 饥人谷_汲汲 | 来源:发表于2017-05-18 16:00 被阅读0次

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

    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()
    

    相关文章

      网友评论

          本文标题:new new Foo().getName() 怎么理解

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