// 以下は OOP で使用されるメソッドです
// これはとても便利です 卑劣です...JS は OOP 言語ではないので...
// しかし、偉大なファンが私たちにこれを行うよう導いてくれます
// これらのメソッドを使用する人々をベルダンディが祝福しますOOP へ...
Function.prototype .inherits = function(base){
//導出関係、プロトタイプは保持される
//単一の導出のみがサポートされます
this.prototype = new Base( );
return this;
}
Function.prototype.create = function(){
//クラスの作成者は new
を使用するのと同じです//JS はサポートしませんコンストラクターで call と apply を使用するので...
/ /Belldandy、この問題の解決方法を教えてくれてありがとう...
var _args = []
for(i=0) ;i
return eval('new this(' _args.join(',') ')'); //eval を使用します...ベルさん、次回はもっと親切にしてください 私のアイデア...
}
Function.prototype.pin = function(pinner,args){
// サービスを登録する、または " pin" service
// EventManager はこれを実行できます
// デフォルトの実装でインターフェイスを実装すると考えることもできます...
// たとえば、pin EventManager は次のようになりますthis: Class.pin(core.WvwntManager)
args = args || [ ];
return this; prototype.method = function(name, f) { //メソッドの追加、効率的
if (!(f instanceof Function)) throw new Error('無効なメソッド バインディング、タイプ ' typeof f ' を取得しました; 期待される関数');
this.prototype[name] = f;
return this
}
Function.prototype.property = function(name, localName, getter, setter) { //プロパティを追加し、ゲッターをカスタマイズできますおよびセッター
if (!name || !nameinstanceof String) throw newEnvironmentException('属性を定義するとき、属性名が定義されていないか、文字列ではありません');
if (!localName || ! localName インスタンスオブ String) localName = '_local_' 名前;
if(関数のゲッターインスタンス) {
this.prototype['_belldandy_get_' 名前] = ゲッター;
}
if(関数のセッターインスタンス){
this.prototype['_belldandy_set_' name] = setter;
}
this.prototype[name] = new Function("value , Force","
if (!value && !force) {
if (!this['" '_belldandy_get_' name "'] || !this['" '_belldandy_get_' name "']instanceof Function)
return this['" localName "'] /* getter が設定されていない場合*/
else
return this['" '_belldandy_get_ ' name "'].call(this);
} else {
if (!this['" '_belldandy_set_ ' name "'] || !this['" '_belldandy_set_' name "'] 関数のインスタンス)
this['" localName "'] = value;
else
this['" '_belldandy_set_' name "'].call(this, value);
return this
} ") //ベルダンディ、許してください、これはクロージャを生成しません
return this
}
Function.prototype.static = function(name,value){ //属性を含む静的機能とメソッド
this[name] = value;
}
には次の効果があります: