JavaScript:複数のオブジェクトを使用したプロトタイピング
-
27-10-2019 - |
質問
これがどこかで答えられたら申し訳ありませんが(おそらくそうです)、適切に尋ねる方法さえよくわからないので、検索に失敗しました:(
基本的に私はこのようなことをしたい:
(a||b).prototype.c = function () {
// do something
}
基本的にAとBはオブジェクトです。どちらか一方が存在しますが、両方ではありません。しかし、どちらが存在するのかわかりませんが、どちらの方法にもメソッドを追加する必要があります。
今、私はこのようなことができることを知っています:
if (typeof(a) == 'object') {
a.prototype.c = c;
} else if (typeof(b) == 'object') {
b.prototype.c = c;
}
function c () {
// do something
}
しかし、これには、Cがグローバルレベルで独自の名前空間を持つという問題があり、私はそれを望んでいません。私は、Cがどの時点でもグローバルレベルで独自の名前空間を持たせたくありません。
Soo ...明らかに上記のコードの最初のビットは機能しません。どうやってこれを進めますか?それとも、このようなものは単に不可能ですか?これが以前に答えられた場合は、お気軽に閉じて正しい方向に向けてください...
解決
このようなことがあなたの問題を解決すると思います:
(function() {
var f = function() {
//Prototype function
};
if(a)
a.prototype.f = f;
if(b)
b.prototype.f = f;
})();
所属していません StackOverflow