为了账号安全,请及时绑定邮箱和手机立即绑定

CoffeeScript 如何继承属性?

CoffeeScript 如何继承属性?

慕后森 2019-04-16 20:26:03
比如我有一个大类classShapesdefaultFill='#9999D2'defaultStroke='#2727A6'overFill='#FFF076'overStroke='#ED1818'然后有一个继承它的类classDotsextendsShapesconstructor:->@defaultFill=defaultFill我发现这样写是错误的,那应该怎么去使用父类的属性呢?谢谢
查看完整描述

2 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

@huandu的方法很好,但是解决不了题主的问题,因为基类写的有点问题。
可以看下下面这段代码编译出来的结果:
classShapes
defaultFill='#9999D2'
@defaultStroke='#2727A6'
overFill:'#FFF076'
@overStroke:'#ED1818'
-->
Shapes=(function(){
vardefaultFill;
functionShapes(){}
defaultFill='#9999D2';
Shapes.defaultStroke='#2727A6';
Shapes.prototype.overFill='#FFF076';
Shapes.overStroke='#ED1818';
returnShapes;
})();
因此,题主基类中的defaultFill声明其实是在一个闭包中,无法在子类中访问到。
应该写成:
classShapes
@defaultFill='#9999D2'
classDotsextendsShapes
constructor:->
@defaultFill=@constructor.defaultFill
                            
查看完整回答
反对 回复 2019-04-16
  • 2 回答
  • 0 关注
  • 258 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信