根据 Douglas Crockford 的说法,我可以使用http://javascript.crockford.com/prototypal.html之类的东西(稍作调整)......但我对 jQuery 的处理方式很感兴趣。使用 $.extend 是一种好习惯吗?
我有 4 节课:
var A = function(){ }
A.prototype = {
name : "A",
cl : function(){
alert(this.name);
}
}
var D = function(){}
D.prototype = {
say : function(){
alert("D");
}
}
var B = function(){} //inherits from A
B.prototype = $.extend(new A(), {
name : "B"
});
var C = function(){} //inherits from B and D
C.prototype = $.extend(new B(), new D(), {
name : "C"
});
var o = new C();
alert((o instanceof B) && (o instanceof A) && (o instanceof C)); //is instance of A, B and C
alert(o instanceof D); //but is not instance of D
所以,我可以从 A、B、C 和 D 中调用每个方法、属性...。问题来了,当我想测试 o 是否是 D 的实例时?我该如何克服这个问题?