当前位置: 移动技术网 > IT编程>开发语言>JavaScript > 关于Function原型对象和Object原型对象的一些疑惑

关于Function原型对象和Object原型对象的一些疑惑

2020年07月17日  | 移动技术网IT编程  | 我要评论
网上有一道美团外卖的面试题是这样的:

Function.prototype.a = 'a';
Object.prototype.b = 'b';
function Person(){};
var p = new Person();
console.log('p.a: '+ p.a); // p.a: undefined
console.log('p.b: '+ p.b); // p.b: b


问为什么?

有不少同学第一眼看上去就觉得很疑惑,p不是应该继承了Function原型里面的属性吗,为什么p.a返回值是undefined呢?
其实,只要仔细想一想就很容易明白了,Person函数才是Function对象的一个实例,所以通过Person.a可以访问到Function
原型里面的属性,但是new Person()返回来的是一个对象,它是Object的一个实例,是没有继承Function的,所以无法访问
Function原型里面的属性。但是,由于在js里面所有对象都是Object的实例,所以,Person函数可以访问到Object原型里面的
属性,Person.b => 'b'

本文地址:https://blog.csdn.net/farmwang/article/details/85986737

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网