1

私は、JSのすべてのニーズにYUI3を使用するWebアプリケーションを作成しています。ツールチップ、AJAXクエリによってコンテンツが決定されるツールチップ、トグルボタンなどの機能が必要です。

これらすべてを実現するために、誰がアーキテクチャを構築するのかわかりませんでした。私は次のアプローチを取りました

var Myapp = function(){

    this.toggleButton(node,config)
    {
        YUI().use(....,function(Y){
            //code to convert NODE into a toggle button;

        });
    }
    return this;
};

私のアプリケーションでは、次のように呼び出すことで、すべてのボタンをトグルボタンに変換します。

var app = Myapp(); 
app.toggleButton(Y.all('.toggle-buttons'),{'text1':'TOGGLE_ME','text2':'TOGGLED_ME'});

これはすべて機能します。しかし、このアプローチに根本的な問題があるかどうか、より経験豊富な開発者から知りたいと思いました。

これはJavaScriptを使用するための良い方法ですか?

4

2 に答える 2

3

return this;

関数コンストラクターはデフォルトで返さthisれるため、これは不要です。

var app = Myapp();

キーワードnew Myapp()なしで呼び出すのを忘れた場合はウィンドウオブジェクトになり、グローバルスコープに効果的に書き込みます。newthis

于 2011-04-18T20:46:05.280 に答える
0

コードには根本的な問題があります。

var MyApp = function(){

    this.toggleButton(node,config)
    {
     ...

の関数を定義していませんMyApp。代わりに、インスタンス化するたびにtoggleButtonを呼び出そうとします。関数が定義されていないため、失敗するはずです


MyAppあなたの場合、はユーティリティとして使用されているため、クラスの定義とインスタンス化は必要ありません。

MyApp静的オブジェクトとして定義できます。

var MyApp = {
    toggleButton: function toggleButton() {
        // your code
    }
};

そして、あなたはそれをどこでも使うことができます:

MyApp.toggleButton();
于 2011-09-13T03:35:39.263 に答える