有如下一个JS类a
var a = function(){
...
onDragEnd:function(){ ....N多代码}
};
现用b继承a,
b的代码中不写onDragEnd方法,则其onDragEnd将完全继承a的onDragEnd方法。
但是现在我想在onDragEnd方法前加一些判断逻辑
b = function(){
...
onDragEnd:function()
{
--b自己的判断逻辑
a中的....N多代码
}
}
问题,“...N多代码”这个能在B中不写吗,但能完全继承A中得功能,js中有没有c#中得base.onDragEnd()之类的写法? 求指教。
不然的话我又要把a中得代码复制到b中,感觉太不好了。
可以这样试试:
var a=function(sColor){
return{
sayColor:function(){
alert(sColor);
}
}
}
var b=function(sColor){
var at=new a(sColor);
return{
sayColor:function(){
alert("more than b");//这里就是B特有的逻辑
at.sayColor();
}
}
}
var tempB=new b("black");
tempB.sayColor();
不好意思,可能我描述的场景有点问题。
实际场景是这样:
有个第三方的js类库:Ext.Carousel(里面有个onDragStart事件)
然后我调用
var myView = = new Ext.Carousel(
{
onDragStart: function(e)
{
--我想在此加点自己的代码
--然后调用base.onDragStart(e);
}
});
不知道有没有什么简单的方法。
@寒风吹过: 我也是JS初学者,水平不行哈,没什么好的方案,等高人出现
@artwl: 谦虚了。那我JS就幼儿园了 呵呵,本来我想说我是初学者的.
楼上正解,把它当两个对象来处理。
不了解Ext的对象是否能取到事件handler,能取到就像artwl说的先生成一个原版的,把需要的事件handler存起来。因为只是这种通过传入{}生成对象的话,还真想不到什么好方法……