为了账号安全,请及时绑定邮箱和手机立即绑定

function B(a) { this.a = a; } 一个关于 构造函数实例化 的面试题

function B(a) { this.a = a; } 一个关于 构造函数实例化 的面试题

慕虎7371278 2018-08-28 13:10:07
function B(a) {       this.a = a;   }   console.log(new B());   // B{ a:undefined }输出 new B(),这不是输出的是B函数的返回值吗? 没有返回值应该结果是undefined啊,为什么输出的会是函数本身?
查看完整描述

2 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

结论:输出的不是函数本身,而是类型为B的对象

你要知道new干了什么:
(1) 创建一个新对象;
(2) 将构造函数B的作用域赋给新对象(因此 this 就指向了这个新对象)
(3) 执行构造函数中的代码(为这个新对象添加属性) ;
(4) 返回新对象。


查看完整回答
反对 回复 2018-09-03
?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

new运算符
这些都是基础的东西
用了new运算符 肯定 不是跟平常调用函数一样

查看完整回答
反对 回复 2018-09-03
  • 2 回答
  • 0 关注
  • 2475 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信