var Person = function() {};
Object.prototype.a = 'A'
Function.prototype.b = 'B'
var p = new Person();
console.log(p.a);//A
console.log(p.b);//undefined复制代码
问为何?
有很多同窗第一眼看上去就以为很疑惑,p不是应该继承了Function原型里面的属性吗,为何p.b返回是undefined呢?javascript
其实,只要仔细想想就很容易明白了,Person函数才是Function对象的一个实例,因此经过Person.a能够访问到Function原型里面的属性,可是new Person()返回来的是一个对象,它是Object的一个实例,是没有继承Function的,因此没法访问Function原型里面的属性。可是,因为在js里面全部对象都是Object的实例,因此,Person函数能够访问到Object原型里面的
属性,Person.b => 'b'。java