关于js原型的面试题讲解
今天遇到关于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模块化编程(三)require.js的用法及功能介绍
这个系列的第一部分和第二部分,介绍了Javascript模块原型和理论概念,今天介绍如何将它们用于实战。我采用的是一个非常流行的库require.js感兴趣的朋友可以了解下啊2013-01-01JavaScript数组的快速克隆(slice()函数)和数组的排序、乱序和搜索(sort()函数)
JavaScript数组的快速克隆(slice()函数)和数组的排序、乱序和搜索(sort()函数)...2006-12-12Javascript new Date().valueOf()的作用与时间戳由来详解
本篇文章小编为大家介绍,Javascript new Date().valueOf()的作用与时间戳由来详解。需要的朋友参考下2013-04-04详解JavaScript函数callee、call、apply的区别
这篇文章主要介绍了JavaScript函数callee、call、apply的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-03-03
最新评论