一起学习网 一起学习网


关于js原型的面试题讲解

网络编程 关于js原型的面试题讲解 06-21

今天遇到关于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原型的面试题讲解的全部内容了,希望对大家有所帮助,多多支持积木网~

JavaScript 闭包详细介绍
深入理解JavaScript——闭包跟很多新手一样我也是初入前端,对闭包的理解花费的时间和精力相当的多。效果也还行,今天我就来根据自己的理解细致的

JS 事件绑定、事件监听、事件委托详细介绍
在JavaScript的学习中,我们经常会遇到JavaScript的事件机制,例如,事件绑定、事件监听、事件委托(事件代理)等。这些名词是什么意思呢,有什么作用

浅谈javascript:两种注释,声明变量,定义函数
javascript:单行注释用//呵呵呵呵;多行注释用/*hdhdhdh*/javascript中区别大小写,定义变量使用关键字var,语法如下:var变量名,其中变量从编程角度讲,变


编辑:一起学习网

标签:函数,事件,原型,值为,属性