有兩個(gè)問題不太明白
最后的那個(gè)bind的實(shí)現(xiàn)里:
bind函數(shù)體里fToBind和fNOP應(yīng)該用var定義成局部變量吧,否則不同的bind調(diào)用之間會(huì)相互覆蓋它們的值。
為什么一定要用fNOP來連接原型鏈?能不能直接設(shè)置fBound.prototype = fToBound.prototype?
最后的那個(gè)bind的實(shí)現(xiàn)里:
bind函數(shù)體里fToBind和fNOP應(yīng)該用var定義成局部變量吧,否則不同的bind調(diào)用之間會(huì)相互覆蓋它們的值。
為什么一定要用fNOP來連接原型鏈?能不能直接設(shè)置fBound.prototype = fToBound.prototype?
2017-12-25
舉報(bào)
2017-12-26
想明白了一部分,自問自答:
應(yīng)該是要定義成局部變量的。
如果直接設(shè)置fBound.prototype = fToBound.prototype,那么fBound和原函數(shù)fToBound就共用了prototype,這樣邏輯上并不合理,因?yàn)閒Bound實(shí)際上和fToBound是一種繼承關(guān)系,所以fBound的prototype應(yīng)該安排在fToBound的下一級(jí),這樣在外部修改fBound的prototype不會(huì)影響到原函數(shù)的prototype。不過我還是覺得這樣寫應(yīng)該也沒問題:fBound.prototype = new fToBound(),而不必另外加一個(gè)fNOP,想求教。