论坛首页 Web前端技术论坛

深入剖析Javascript之继承

浏览 10488 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-08-03  
第三种能算是继承么?
方法的prototype指向的是另一个方法的实例,这可是实例呀,就算子方法new再多,父方法也只有一个实例。
0 请登录后投票
   发表时间:2007-08-03  
第三种可以算继承,因为虽然不是类的继承,但是可以算是原型继承,也就是继承了作为原型的对象实例上的所有属性。而前两种只是复制或共享原型实例,最多只能说m1继承了m2的原型(或其副本),但是没有继承m2。
0 请登录后投票
   发表时间:2007-08-03  
hax 写道
第三种可以算继承,因为虽然不是类的继承,但是可以算是原型继承,也就是继承了作为原型的对象实例上的所有属性。而前两种只是复制或共享原型实例,最多只能说m1继承了m2的原型(或其副本),但是没有继承m2。


前两种不算继承倒是比较明显。

第三种,“继承了作为原型的对象实例上的所有属性”,在继承《方法》属性上还算可以理解,继承《Property》属性上实在不能让人接受。
0 请登录后投票
   发表时间:2007-08-04  
js本质上只有属性。如果属性是一个函数,则像x.f()这样的调用,在f内的this会指向x,从而变成所谓方法。

因此本质上不存在继承方法,只有继承属性。这个有什么不能接受呢?所谓继承,就是获得其被继承者的所有特性,不是吗。就算是java,子类一样继承了父类的所有特性,不仅包括方法,也包括成员变量,不仅包括public,也包括protectd, private的(不过就是不再能直接访问private而已)。

0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics