每日一测

简介: 每日一测

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


目录
相关文章
|
7月前
|
敏捷开发 Cloud Native 安全
云原生有哪些优缺点呢
云原生有哪些优缺点呢
|
7月前
ChatGLM2 源码解析:`ChatGLMTokenizer`
ChatGLM2 源码解析:`ChatGLMTokenizer`
174 0
|
7月前
|
jenkins 持续交付 开发工具
gitlab远程库代码版本回滚方法
gitlab远程库代码版本回滚方法
290 1
|
7月前
|
消息中间件 存储 Kafka
【Kafka】Kafka 消息封装
【4月更文挑战第10天】【Kafka】Kafka 消息封装
【Kafka】Kafka 消息封装
|
数据库 开发者 微服务
单元化架构的设计要素
单元化架构的设计要素
|
7月前
|
消息中间件 Prometheus 监控
Prometheus实战篇:Prometheus监控rabbitmq
Prometheus实战篇:Prometheus监控rabbitmq
|
存储
Keil 5报错error C216: subscript on non-array or too many dimensions
Keil 5报错error C216: subscript on non-array or too many dimensions
637 0
|
存储 SQL 安全
SQL 存储过程和函数的对比、变量、条件和处理程序、游标、流程控制详解+代码示例
SQL 存储过程和函数的对比、变量、条件和处理程序、游标、流程控制详解+代码示例
|
关系型数据库 MySQL Linux
Linux下安装MySQL8
Linux下安装MySQL8
Linux下安装MySQL8
|
SQL 监控 druid
数据库连接池(Druid(德鲁伊))
数据库连接池(Druid(德鲁伊))
数据库连接池(Druid(德鲁伊))