永发信息网

javascript中 F.prototype=obj和F.prototype=obj.prototype有什么区别?

答案:2  悬赏:50  手机版
解决时间 2021-02-13 09:43
javascript中 F.prototype=obj和F.prototype=obj.prototype有什么区别?
最佳答案
都是对prototype的赋值,语义上没什么区别。差别在于对属性、方法的检索上,javascript的对象属性、方法的搜寻的过程是:
1、对象本身
2、对象prototype
3、对象prototype的prototype,类推。。。

javascript类的基础的处理上,一般有两种方式,一种引用原型的方式,另外是复制原型的方式,差别从名称上就能看出来,引用原型是直接引用父类的原型:
Function.prototype.classExtends = function ()
{
var F = function() { };
var class = new F();
class.prototype = this.prototype;
class.prototype.Super = this;
class.prototype.constructor = this;

return class;
}

function classA() {
};

var classB = classA.classExtends();

复制原型比较简单,是从父类的prototype复制所有的方法、属性到派生类的prototype,派生类和基类的prototype没有直接的引用关系,这部分就不给代码了。追问
还是给您看代码,superType.prototype赋值给了Object(),就出现了f.prototype=superType.prototype ,如果赋值给Object()的是superType,最后实例化后输出继承类属性是undefined,我想知道这个里面的内部运行机制
追答一般create用来返回类的实例,你这里用来做继承关系的处理,感觉有点怪异。

说说代码里面的问题:
create里面的object()的参数,应该是new superType(),不应该是superType.pototype;
还有,原型法的继承方式,是不能假定构造方法的,也就是说在SubType函数中,不应该使用SuperType.call来调用基类的构造,原型法的继承方式,一般是不带构造参数的,这本来就是原型法继承方式的一个缺陷。追问create函数名的问题我记下了 。
至于代码的问题,是没错的,这个是javascript高级程序设计章节中“寄生组合式继承”的示例代码,这个里面就是直接用的superType.prototype传递的参数 ,所以产生问题。用SuperType.call来调用基类的构造,就是为了解决子类型构造函数中向超类型构造函数传递参数。追答我看的类库很多,有几个是采用原型法继承方式的,没见过这么处理的。

那本书?让我开开眼!追问javascript高级程序设计
全部回答
//这段代码

说明如果集成ClassA.prototype便不具有ClassA的原有属性,但是如果集成ClassA对象的实例便具有了ClassA.prototype的属性
追问
  

superType.prototype赋值给了Object(),就出现了f.prototype=superType.prototype ,这个就无法理解了,     按照你的,那就不具有superType的原有属性了 还望解答 


  
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我在QQ群里发的群链接怎么删除呢?
用一个长10厘米,宽4厘米的长方形,剪一个最
钻石钱柜时尚KTV地址在哪,我要去那里办事
木瓜表面为什么会出现白色颗粒?
会计专业技术资格的初级和评定的初级职称有什
车仪表盘显示abs是什么意思,各位车友有了解这
重庆为何被称为美食之都?
下列发明,其最初目的是为了提高人类生活质量
为什么脸颊两侧会长斑
刚买的创维82RD电视 点3D模式后 不戴眼镜模糊
劳动法中对下岗再就业职工是否有相应保护规定
HR16与LL5哪个更好
西大图书馆的校外读者办借书证要多少钱呢?
根据《环境影响评价技术导则总纲》,工程分析
我这边有2000家地方电视台,我这边主要负责电
推荐资讯
竭诚汽车服务中心怎么去啊,我要去那办事
美世界阳光美容养生馆地址好找么,我有些事要
德国海尔布隆应用技术大学 怎么样?教学质量
赵记驴肉蒸饺家常菜地址有知道的么?有点事想
长安商用铜梁展承怎么去啊,我要去那办事
20万国际单位是多少
我想问下,如果不想毕业不做本专业的还可以做
八会穴中的筋会穴是A.足三里B.阳陵泉C.悬钟D.
泰源渔具怎么去啊,有知道地址的么
芭堤美度主题酒店地址好找么,我有些事要过去
天和地KTV怎么去啊,有知道地址的么
慢性支气管炎典型病变中没有A.黏膜上皮鳞化B.
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?