私は下に継承に取り組んでいる方法に欠点があるかどうか疑問に思っていますか? 考慮するメモリリークはありますか?他の継承パターンより多くのメモリが使用されていますか? 以下の「クラス」パターン(新しい...())を使用してJavaScriptをコード化することをお勧めします...私は他の継承パターンを目立たせ、これを思いついただけです...Javascript継承パターン。フィードバックお願いしますか?
コメントをいただきありがとうございます!
// Class A
function A() {
var that = this;
that.hello = function() {
return "HELLO";
}
}
// Class B
function B() {
var zuper = new A();
var that = this;
that.variable = "VARIABLE";
zuper.bye = function() {
return "BYE";
}
zuper.getVariable = function() {
return that.variable
}
return zuper;
}
var b = new B();
alert (b.hello()) // "HELLO"
alert (b.bye()) // "BYE"
alert (b.getVariable()) // "VARIABLE"
================================ EDIT ========= ========================== 私は私の元の方法を改訂し、これを思い付いた。これは、私はあなたにプロトタイプについて検討すべきだと思うB
// Class A
function A() {
var that = this;
that.publicProperty = "PUBLIC_PROPERTY";
var privateProperty = "PRIVATE_PROPERTY";
that.hello = function() {
return "HELLO";
}
that.getPrivateProperty = function() {
return privateProperty;
}
that.overrideThis = function() {
return "NO_PLEASE_NO";
}
}
// Class B
function B(a, b, c) {
A.apply(this, arguments);
this.variable = "VARIABLE";
var privateVariable = "PRIVATE_VARIABLE";
this.bye = function() {
return "BYE";
}
this.getVariable = function() {
return this.variable
}
this.getPrivateVariable = function() {
return privateVariable;
}
this.getAandB = function() {
return a + b;
}
this.getFromSuperPublicPropery = function() {
return this.publicProperty;
}
this.overrideThis = function() {
return "MUHAHAHA";
}
}
var b = new B("aaa", "bbb");
alert (b.hello()) // "HELLO"
alert (b.bye()) // "BYE"
alert (b.getVariable()) // "VARIABLE"
alert (b.getPrivateVariable()) // "VARIABLE"'
alert (b.getAandB()) // "aaabbb"
alert (b.getFromSuperPublicPropery()) // "PUBLIC_PROPERTY"
alert (b.getPrivateProperty()) // "PRIVATE_PROPERTY"
alert (b.overrideThis()) // MUAHAHAA
function C() {
A.apply(this, arguments);
}
var c = new C();
alert (c.overrideThis()) // "NO_PLEASE_NO"
alert (c.bye()) // Expecting an exception here! Correct!
これは継承ではありません。どのように参照してくださいhttp://stackoverflow.com/questions/7486825/javascript-inheritance – hungryMind