0

私はこれをよく見かけますが、その目的や利点 (もしあれば) についてはわかりません。変数の値として、関数または関数のセットをオブジェクト内に配置します。

var variableName = { (function() {DO STUFF} )}
4

2 に答える 2

0

JavaScript はグローバル変数を使用します。つまり、すべてのスクリプトがすべての変数にアクセスして変更でき、同じ名前の変数を上書きできる可能性があります。独自のスクリプトを保護するには、グローバル変数 ( var MyScript=... など) を使用して、すべてをそれに書き込みます。例を挙げると、html ファイル間を移動するための簡単なスクリプトを作成しました。内部のすべてのものをカプセル化する「Navi」と呼ばれる変数を見ることができます。これには変数と関数が含まれており、(この場合) 返された名前によってのみアクセスが許可されます。Navi で next と previous の関数を記述した場合、他のスクリプトで上書きされる可能性があります。

var Navi = (function(){
    var currentPage = 0;
    var pages = [];
    pages[0] = "first.html";
    pages[1] = "second.html";
    pages[2] = "third.html";

    var next = function next(){
        if(currentPage < pages.length - 1){
            currentPage++;
            location.href = pages[currentPage];
        }
    };

    var previous = function previous(){
        if(currentPage > 0){
            currentPage--;
            location.href = pages[currentPage];
        }
    };

    return{
        next: next,
        previous: previous,
        currentPage: currentPage,
        pages: pages
    };
})();

html ファイルから呼び出すには:

<a href="javascript:Navi.previous();">previous page</a>
<a href="javascript:Navi.next();">next page</a>

ここのところ。

于 2013-05-14T08:18:40.897 に答える
0

基本的に、関数に名前があれば、それを呼び出すことができます

variableName.function(args);

これらの種類のオブジェクトでは、自分でデータを更新またはリセットするまで、常にオブジェクトに保存されるメソッドを設定できます。これは、物事を動的にしたいが入力データを記憶したい場合に便利です。

次のようなシングルトン オブジェクトを作成できます。

var Singleton = {

    data1 : '',

    functionName : function() {

        this.data1 = document.getElementById('formfield1').value;    

    }

}

したがって、idがformfield1のフォームフィールドがある場合

<input type="text" id="formfield1" value="" />

たとえば、この関数を送信ボタンにバインドすると

<button onclick="Singleton.functionName();">Save</button>

あなたの情報は、オブジェクトの data1 変数に保存されます。

これ以外にもたくさんありますが、データを保存する良い方法です。お役に立てば幸いです:)

于 2013-05-14T08:14:57.663 に答える