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