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