Javascript inherit problems 继承,举个例子:类:车属性:速度、位置方法:前进,停止(假设这车功能很弱)类:汽车A属性:方向。方法:左转,右转。(增加的功能)假设汽车A是继承自车的。这时候,汽车A实际上已经拥有了车的全部属性和方法,而且还增加了自己的属性和方法。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这里貌似有详细的讲解http://blog.csdn.net/slalx/archive/2007/10/30/1856321.aspx要了解面向对象。何必一来就看javascript的模拟呢。直接用java之类的一下就知道大概了。 首先你要了解继承机制。继承就是将父类的public,protected方法继承到子类中。同时,我们可以调用super之类的方法也调用父类的构造函数。我们对照上面的例子。Person是父类。User是子类,他继承自Person。可以通过uber(方法名)来调用父类的某个方法。这个uber方法的好处是在父类和子类的方法名称是一致时,可查找到父类的方法,并调用它(既可同名,又可以再调用父类方法)。这可以称之为寄生继承。然则,对于单继承来说,父类是一颗树。一个类有可能是有一个或多个父类。所以我们必须在调用uber的时候查找继承树,在js里,称作是查找prototype链。直到找到最远的为止。而实际上这段代码是有问题的:1.在一个多父类的继承树里时,查找父类的prototype的时候,里面的d是没有定义的。2.该代码是要找到最远的父类,那么假设父类没有定义getName方法,将会报错。3.在一开始继承的时候就调用了父类的构造函数,增加了效率成本,其次,假设父类的构造函数期待一个参数传入的话,那么该继承也无能为力。个人认为,此例可以用于教学,但不是一个很好的实现继承方法。swiss原型方法,这个方法具体的作用不大,只是指定拷贝父类的某一个/多个方法如:function jsclassA(){};jsclassA.prototype = { methodA: function(), methodB: function(), methodC: function()}function jsclassB(){};jsclassB.swiss(jsclassA,'methodB','methodC');这样jsclassB就拥有了methodB和methodC方法 菜鸟悲壮的来了。jquery验证用户名。 再次提问:JS处理节点问题 求关于怎样学好javascript的方法 修改后的RichEditor不能用了!拜托大家给看看!谢谢! 菜鸟级问题,请帮忙看看 JS实现网页上的图片每隔一段时间变化一次,而且要到尾部后又从头开始,不是滚动的效果,求代码谢谢 在一个框架页面中如何对另一包含文件进行控制 如何用代码给 <input type="file"> 赋值 存储以后 server.transfer 原来的界面,然后点一下"刷新",结果又存储一遍,这是怎么回事? js 求 还原 求还原方法 怎么获得点击一个动态链接的次数? 一个验证邮箱的js函数
直接用java之类的一下就知道大概了。
我们对照上面的例子。
Person是父类。
User是子类,他继承自Person。可以通过uber(方法名)来调用父类的某个方法。这个uber方法的好处是在父类和子类的方法名称是一致时,可查找到父类的方法,并调用它(既可同名,又可以再调用父类方法)。这可以称之为寄生继承。然则,对于单继承来说,父类是一颗树。一个类有可能是有一个或多个父类。所以我们必须在调用uber的时候查找继承树,在js里,称作是查找prototype链。直到找到最远的为止。而实际上这段代码是有问题的:
1.在一个多父类的继承树里时,查找父类的prototype的时候,里面的d是没有定义的。
2.该代码是要找到最远的父类,那么假设父类没有定义getName方法,将会报错。
3.在一开始继承的时候就调用了父类的构造函数,增加了效率成本,其次,假设父类的构造函数期待一个参数传入的话,那么该继承也无能为力。个人认为,此例可以用于教学,但不是一个很好的实现继承方法。
swiss原型方法,这个方法具体的作用不大,只是指定拷贝父类的某一个/多个方法如:
function jsclassA(){};
jsclassA.prototype = {
methodA: function(),
methodB: function(),
methodC: function()
}function jsclassB(){};
jsclassB.swiss(jsclassA,'methodB','methodC');
这样jsclassB就拥有了methodB和methodC方法