面試題----原型的理解

小夥伴們,不知道大家是怎麼對面向對象、閉包、原型、原型鏈理解的怎麼樣,這一塊臭臭一直以來理解的不夠透徹,有理解透徹的小夥伴可以跟臭臭講解一下喲~~雖然臭臭理解的不深,但是還會整理這些面試題喲,接下來我們來看一下關於原型的面試題吧!

function f() {}
var a = f.prototype;
var b = Object.getPrototypeOf(f);
a === b

運行結果爲false;看一下大神是怎麼理解的吧~

1、在講解之前,首先要記住一件事:函數的原型和它的prototype屬性無關,所以答案是false。爲了能更好的理解這句話,我在這裏再拋出一個問題:既然他們互不相等,那到底a和b與什麼相等呢?

2、a = f.prototype,它的意思是,a是使用new創建的f實例的原型,即 a = Object.getPrototypeOf(new f()),所以,我們得到結論,f.prototype === Object.getPrototypeOf(new f());

3、b = Object.getPrototypeOf(f),它的意思是,b是函數的原型(並不涉及f的new實例化),即 b = Function.prototype,所以,我們得到的結論是Object.getPrototypeOf(f) === Funtion.prototype;

臭臭對這個理解的不是很透徹,希望大家諒解,歡迎大家給臭臭講解哦~奮鬥

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章