JavaScript 构造函数问题

学习构造函数,做练习题遇到如下代码

代码如下

function Fn(){
   return this;
}
Fn.prototype.getNum = function(){
    console.log(3);
};
new new Fn().getNum ();

为什么输出的是3?

我理解的是 new new Fn().getNum (); 这句代码

var f = new Fn(); //=> 第一步 f 是一个空对象
new f.getNum();  //=> 第二步 在空对象f中查找getNum方法应该报错才对啊!!!

阅读 2.6k
3 个回答

clipboard.png
哪里空了

f不是空对象,详情请百度js原型

new new Fn().getNum ();

var f = new Fn() //a自有属性中没有getNum (),不代表f.getNum ()为undefined。在自有属性中没找到会继续向__proto__中找

图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题