シンプルな JS 多重継承の例_JavaScript スキル
リリース: 2016-05-16 19:05:44
$define = function (v) {
return v !=未定義;
}
クラス = 関数 () {
var base = {};
for (var k=0; k
//{{new arguments[k]() with custom constructor field。
var o = arguments[k].prototype;
o.constructor = arguments[k];
arguments[k].call(o);
//}}
for (key in o) base[key] = o[key];
}
function Klass () {
// クラスごとに 1 つのオブジェクト キャッシュ。
var clso = null;
function klass() {
if (arguments.length // キャッシュにヒットします。
戻り clso;
}
if ($define(this.constructor.init)) {
// クラスの初期化には init() を使用します。
this.constructor.init.apply(this, arguments);
}
clso = これ;
}
klass.prototype = base;
戻りクラス;
}
return Klass();
}
A = 新しい Class();
A.init = function () {
this.x = 400;
this.y = 300;
}
B = 新しい クラス(A);
B.init = function () {
this.y = 200;
this.z = 100;
}
C = 新しい クラス(B);
C.init = function () {
this.z = 0;
}
c = new C();
アラート(c.x);
アラート(c.y);
アラート(c.z);
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31