不是很理解继承的那个地方
不理解用了call()为什么还要用到util.inherit(),既然都要用到继承,为什么还要使用.call()?
不理解用了call()为什么还要用到util.inherit(),既然都要用到继承,为什么还要使用.call()?
2016-05-09
我是这么理解的:
有a b俩个函数
function a(d){
this.sk = function(){
alert(d)
}
//this.mc()
}
//a.prototype.mc = function(){
//alert(2)
//}
function b(f){
a.call(this,f)
}
var c = new b(3).sk()
//F12运行,弹出3,你打开隐藏,会提示你this.mc没找到- - 说明使用call,仅仅只能继承函数内部的属性,
函数原型的方法是继承不到的(其实这里说继承,是不准确的,且当是继承吧,反正就是能使用函数内部的一切)。
inherits刚好相反,继承的是a函数原型的mc方法,反而a函数的内部的sk属性继承不到。新手互勉
你参考下这个http://sentsin.com/web/179.html;;;;
.call只是把别的某个函数拿来自己用,,
而util.inherits是把stream.Readable圆形链上面的函数继承到ReadStream上来!
PS:有错请指出
举报