每日一测

简介: 每日一测

关于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);

答案请往下翻
















答案:1、undefined、2. 

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;


目录
相关文章
|
9月前
|
Web App开发 缓存 前端开发
中高级前端高频面试题分享(一)
中高级前端高频面试题分享
136 0
|
9月前
|
移动开发 JavaScript 前端开发
React 还是 Vue: 你应该选择哪一个Web前端框架?
React 还是 Vue: 你应该选择哪一个Web前端框架?
187 0
|
9月前
|
自然语言处理 前端开发 JavaScript
Babel 的工作原理以及怎么写一个 Babel 插件
Babel 的工作原理以及怎么写一个 Babel 插件
134 0
|
9月前
|
API
window resize和scroll事件性能优化
window resize和scroll事件性能优化
161 0
|
9月前
|
存储 数据采集 移动开发
经典的前端 面试笔试题(一)
经典的前端 面试笔试题
121 0
|
9月前
|
缓存 JavaScript 前端开发
微前端项目难点解决(一)
微前端项目难点解决
295 0
|
9月前
|
存储 编解码 前端开发
一个低代码拖拽的表单编辑器
一个低代码拖拽的表单编辑器
226 4
|
9月前
|
前端开发 编译器 API
揭秘webpack插件工作流程和原理(一)
揭秘webpack插件工作流程和原理
121 2
|
9月前
|
前端开发 JavaScript
玩转ES6(四)Set、Map、Class类和decorator 装饰器
玩转ES6(四)Set、Map、Class类和decorator 装饰器
147 0
|
9月前
|
Android开发 iOS开发
微信网页唤醒app的方法
微信网页唤醒app的方法
257 0