亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

這個TransformStream既然后面已經用了繼承stream.Transform,為什么前面還要call(this)?

他既然繼承了,就擁有了他的所有方法,為什么前面還要給個 call(this)來劫持呢??求教老師。

正在回答

1 回答

這里是為了實行原型繼承,call本身只是對象冒充,不具備繼承原型鏈上的方法;首先讓Transform這個構造出來的對象得到stream.Transform所具有的方法,因為util的inherit方法是讓Transform對象繼承于stream.Transform的原型(并不是讓stream.Transform與Transform形成繼承關系,所以Transform在沒call()前不具備stream.Transform的方法,這一點可以去深入了解nodejs的util的inherit方法),再來重寫stream.Transform上原型的方法。

0 回復 有任何疑惑可以回復我~
#1

慕田峪6302525

有個疑問 這樣重寫stream.Transform上原型的方法,不就影響所有stream.Transform的實例了嗎?? 為什么不讓Transform對象繼承于stream.Transform的一個實例,這樣的話,重寫Transform對象上原型的方法就是重寫stream.Transform的一個實例的方法而已,不會影響到其他stream.Transform的實例。 總感覺我忽略了哪里 或者沒理解這樣的意圖
2018-06-30 回復 有任何疑惑可以回復我~
#2

慕田峪6302525

先call(this)后inherit 和 直接new出來一個stream.Transform的實例 不是一樣嗎 為什么這樣寫
2018-06-30 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
進擊Node.js基礎(二)
  • 參與學習       76735    人
  • 解答問題       242    個

本教程帶你攻破 Nodejs,讓 JavaScript流暢運行在服務器端

進入課程

這個TransformStream既然后面已經用了繼承stream.Transform,為什么前面還要call(this)?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號