问题
假设我在 CS 中有以下课程
class Foo
foo:
one: 1
two: 2
我想要一个class Bar extends Foo
谁的foo
财产归还{one: 1, two: 2, three: 3}
。有没有一种方法可以在类定义中执行此操作,Bar
因为我只附加three: 3
到超类上已经存在的foo
属性Foo
?
用例/解决方法
我很好奇是否可以做我上面解释过的事情。但是,由于我的用例,这不是一个阻塞问题,因为我可以使用 Coffeescript 的super
调用通过使其成为一个函数来解决它。
我目前正在使用 Backbone,我有两个课程。一个继承自Backbone.Model
第一个类,另一个继承自第一个类。在第一个类中,我设置了defaults
属性,以便在创建此模型时,如果未传入,则设置实例变量。从我的第一个类继承的类有一个额外的键值对添加到该defaults
对象如果我想覆盖默认值,情况也会一样。
Backbone 中对象的默认值是通过使用 Underscore 的result
方法获得的,因此在这种情况下,快速解决方法是简单地创建defaults
一个返回相同对象的函数。在 Coffeescript 中,这非常简单,变成:
class Foo
foo: ->
one: 1
two: 2
然后Bar
您可以执行以下操作:
class Bar extends Foo
foo: ->
_.extends super, three: 3