記一次很拙計的經(jīng)歷(前端)
這樣一道題目:JavaScript中,有A、B兩個類,讓B類繼承A類的所有屬性。聽完描述,認為很簡單,于是直接就在firebug中敲代碼了,正敲著的時間,那哥們兒對我說:console.log出來就行了,于是我果斷 console.dir了,結(jié)果就發(fā)現(xiàn)如圖1-1,調(diào)了一下,加上參數(shù),換apply…都沒出來,當場就拙計了…..

圖1-1
更為拙計的是,當時就懷疑自己了,沒有換console.log,alert,哪怕是document.write試一下?;貋硐胂敫杏X不對,于是就測試了一下,還真發(fā)現(xiàn)了問題,接著上圖1-2:

圖1-2
發(fā)現(xiàn)問題沒有,直接console.dir(obj),該對象的屬性就出來了,可是console.dir(obj.name),它卻提示沒有子對象。那就說明,問題不是出在代碼上了,果斷換chrome再試一遍,如圖1-3。

圖1-3
此時console.dir(obj.name)就得到我們想要的結(jié)果,當然也是正確的結(jié)果。
前一段園子里出了位大神:
9個offer,12家公司,35場面試,從微軟到谷歌,應屆計算機畢業(yè)生的2012求職之路
大神說的好:...碰到非專業(yè)的各種秒殺,碰到專業(yè)各種拙計。那我的這個拙計該如何解釋呢?再摘抄該大神的一些語錄吧:
我的微軟mentor曾提到過,我的實習面試表現(xiàn)一般,但后來表現(xiàn)出的動手能力大大超出之前面試的預估,而有些面試表現(xiàn)很出色,問題對答如流的選手,入職之后反而不是很理想,至少沒有達到面試時發(fā)揮出的水準。
這說明一個問題,就是筆試面試,準備和不準備會差異很大。如果你的簡歷不是那么NB,那就只能靠筆試和面試的加分撐場面。身邊經(jīng)常有同學納悶這樣代碼都編不利索的傻屌都能進MS為什么我不能進,答案往往很簡單:人家比你多準備了一個月。平時電腦上寫程序可能很利索,筆試面試時在紙上寫寫試試你就知道什么叫拙計。
這些東西大神說的比較透徹,就不多討論了。就只按技術(shù),接著剛剛的問題,繼續(xù)往下走。在與“此度”的面試者交流的時間,對方對這個題目的解答是使用 JavaScript的原型鏈,聽到這句話時間,我當時真是“震驚”了,但是人家說的也沒錯(況且人家都說了自己js不好,是美工出身,估計那哥們兒對我的懷疑很多,唉…..)。
如圖1-3,直接使用prototype,原型鏈的方式的結(jié)果,依然沒有得到我們想要的結(jié)果,看來firebug的這個bug是鐵定要“抗爭”到底了。

圖1-3
接著換chrome吧,如圖1-4:

圖1-4
這時間,console.dir(obj.name)就得到了我們想要的結(jié)果,當然B的 _proto_ 也指向A了。好吧,不管firebug了,那個太“坑爹”了。繼續(xù)使用chrome來比較一下兩種方式的區(qū)別,如圖1-5:

圖1-5
使用原型鏈的方式,其實B類已經(jīng)不是它自己了,他只是A原型鏈上的一個“附屬”罷了,它的constructor都指向了A,既然是這樣我們只寫一個A類就行了,何必要再給自己找麻煩,扯出來一個B呢?
這道題目的初衷是讓B類繼承A類的所有屬性,我的解答也是正確的。但是拙計的是沒想到firebug會這么不給力。話說回來,由此次經(jīng)歷來看,那哥們兒考察的思路是正確的:不聽你說什么,就用一個一個的小細節(jié)來說明問題。此種方法可以避免前面大神說的預則立不預則廢的情況,過濾掉那些,實際動手能力差,但是“應試”能力比較強的人。
但是這個“某度”的哥們兒太自得了,整個過程我都是以一個很謙虛的態(tài)度說話,然后他就更自得了。用他擅長的css來考察各種小細節(jié),回來整理了一下他的題目,必須要承認之前自己沒這么仔細過,但是有些細節(jié)真的讓我鄙視這哥們兒了,妹的,真是被他繞暈了。