使用John Resig的类语法和Mixins

3

我认为你不需要 augment(Ninja, CanRun); - 它已经从 Person 继承,其中包含了 CanRun - Bergi
这个 jsfiddle 链接似乎不能再进行 fork 操作了... :( - Krešimir Nesek
1个回答

0

我认为有必要考虑混合实现的风格。

例如,如果我做了这样的事情:

if(ninja instanceof CanRun){
    document.write("yea");
}else{
    document.write("no");
};

那我应该得到“是”还是“否”?

在你的实现中,mixin不是类。我不知道这是否是你的目标,但在许多语言中,mixin是一个完全有价值的类,除了它不允许创建实例。


CanRun是一个对象,所以instanceof会抛出异常。这不是mixin的工作方式。 - Bergi
例如在Ruby中,is_a(instanceof的类比)可以像类一样正确地使用mixins。因此,如果此代码实现了对mixin的自己理解,则可以接受。但是在一般情况下,这并不是这样的。 - Denis Kreshikhin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接