关于js原型的面试题讲解
程序员文章站
2023-10-26 20:44:40
今天遇到关于javascript原型的一道面试题,现分析下:
原题如下:
function a(){
}
function b(a){
this.a...
今天遇到关于javascript原型的一道面试题,现分析下:
原题如下:
function a(){ } function b(a){ this.a = a; } function c(a){ if(a){ this.a = a; } } a.prototype.a = 1; b.prototype.a = 1; c.prototype.a = 1; console.log(new a().a); console.log(new b().a); console.log(new c(2).a);
分析:
console.log(new a().a); //new a()为构造函数创建的对象,本身没有a属性,所以向它的原型去找,发现原型的a属性的属性值为1,故该输出值为1;
console.log(new b().a); //new b()为构造函数创建的对象,该构造函数有参数a,但该对象没有传参,故该输出值为undefined;
console.log(new c(2).a); //new c()为构造函数创建的对象,该构造函数有参数a,且传的实参为2,执行函数内部,发现if为真,执行this.a = 2,故属性a的值为2;
故这三个的输出值分别为:1、undefined、2.
以上就是小编为大家带来的关于js原型的面试题讲解的全部内容了,希望对大家有所帮助,多多支持~