【发布时间】:2011-11-04 14:49:35
【问题描述】:
我有三个咖啡脚本类,设置如下:
class A
class C extends A
class B
所以原型链看起来像这样:
A -> C
B
我需要原型链看起来像这样:
A -> B -> C
问题是我无法触及 A 和 C 的定义。
我想做的是创建一个可以像这样调用的注入函数:
inject B, C
在 A 之前将 B 注入到 C 的原型链中,然后将 B 的原型链设置为注入之前的 C 的原型链。
我认为这很简单,就像
C extends (B extends C.prototype)
但不幸的是,由于咖啡脚本的所有原型/__super__ 魔法,事情并没有那么简单。有谁知道如何注入原型链,基本上就像你说的 class C extends B 和 class B extends A 首先?
非常感谢。
澄清:以下代码不起作用,因为无法复制属性。
class A
foo: 1
class B
bar: 2
class C extends A
baz: 3
B extends A
C extends B
c = new C
console.log c.foo
console.log c.bar
console.log c.baz
【问题讨论】:
标签: coffeescript