mixin目的:为了使类aa有 
1  .aa 属性
2  .aafn()方法
3  .bb 属性
4  .bbfn()方法
5  并且每个aa实例的变量不会冲突
以下代码能做到 1,2,3,4, 但是第5条不行,最后输出结果说明了:所有实例的bb变量都指向同一个,改一个其他都改了,期望的效果是不会冲突,请问如何写这个mixin方法function aa() {//类 aa
    this.aa = 'aaa';
}
aa.prototype.aafn = function() {
alert('aa');
};
function bb() {//类 bb
    this.bb = [];
}
bb.prototype.bbfn = function() {
alert('bb');
};function mixin(cls1, cls2) {
var prot1 = cls1.prototype; aa.prototype = new cls2();
    apply(cls1.prototype, prot1);
}mixin(aa, bb);var a1 = new aa();
var a2 = new aa();
a1.bb.push(1);console.info(a2.bb);