欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

关于js原型的面试题讲解

程序员文章站 2022-06-07 14:33:59
今天遇到关于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原型的面试题讲解的全部内容了,希望对大家有所帮助,多多支持~