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