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

function B(a) {  
    this.a = a;  
}  
console.log(new B());   // B{ a:undefined }

输出 new B(),这不是输出的是B函数的返回值吗? 没有返回值应该结果是undefined啊,为什么输出的会是函数本身?


慕虎7371278
浏览 2476回答 2
2回答

缥缈止盈

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

牧羊人nacy

new运算符这些都是基础的东西用了new运算符 肯定 不是跟平常调用函数一样
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript