关于js原型的面试题讲解
今天遇到关于javascript原型的一道面试题,现分析下:
原题如下:
functionA(){
}
functionB(a){
this.a=a;
}
functionC(a){
if(a){
this.a=a;
}
}
A.prototype.a=1;
B.prototype.a=1;
C.prototype.a=1;
console.log(newA().a);
console.log(newB().a);
console.log(newC(2).a);
分析:
console.log(newA().a);//newA()为构造函数创建的对象,本身没有a属性,所以向它的原型去找,发现原型的a属性的属性值为1,故该输出值为1;
console.log(newB().a);//newB()为构造函数创建的对象,该构造函数有参数a,但该对象没有传参,故该输出值为undefined;
console.log(newC(2).a);//newC()为构造函数创建的对象,该构造函数有参数a,且传的实参为2,执行函数内部,发现if为真,执行this.a=2,故属性a的值为2;
故这三个的输出值分别为:1、undefined、2.
以上就是小编为大家带来的关于js原型的面试题讲解的全部内容了,希望对大家有所帮助,多多支持毛票票~
热门推荐
10 天气转凉祝福语简短
11 开店大吉文案祝福语简短
12 18岁简短祝福语经典
13 酒吧深情祝福语大全简短
14 邻家生小孩祝福语简短
15 女神节日简短祝福语大全
16 迎接朋友蛋糕祝福语简短
17 六一互换礼物祝福语简短
18 英语简短祝福语给学生