課程
/前端開發(fā)
/Node.js
/進(jìn)擊Node.js基礎(chǔ)(二)
他既然繼承了,就擁有了他的所有方法,為什么前面還要給個(gè) call(this)來劫持呢??求教老師。
2017-07-28
源自:進(jìn)擊Node.js基礎(chǔ)(二) 2-4
正在回答
這里是為了實(shí)行原型繼承,call本身只是對象冒充,不具備繼承原型鏈上的方法;首先讓Transform這個(gè)構(gòu)造出來的對象得到stream.Transform所具有的方法,因?yàn)閡til的inherit方法是讓Transform對象繼承于stream.Transform的原型(并不是讓stream.Transform與Transform形成繼承關(guān)系,所以Transform在沒call()前不具備stream.Transform的方法,這一點(diǎn)可以去深入了解nodejs的util的inherit方法),再來重寫stream.Transform上原型的方法。
慕田峪6302525
舉報(bào)
本教程帶你攻破 Nodejs,讓 JavaScript流暢運(yùn)行在服務(wù)器端
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2017-08-08
這里是為了實(shí)行原型繼承,call本身只是對象冒充,不具備繼承原型鏈上的方法;首先讓Transform這個(gè)構(gòu)造出來的對象得到stream.Transform所具有的方法,因?yàn)閡til的inherit方法是讓Transform對象繼承于stream.Transform的原型(并不是讓stream.Transform與Transform形成繼承關(guān)系,所以Transform在沒call()前不具備stream.Transform的方法,這一點(diǎn)可以去深入了解nodejs的util的inherit方法),再來重寫stream.Transform上原型的方法。