0

ここ数日、私は JavaScript の関数式と宣言の違いについて多くのことを考えていました。ほとんどの場合、関数式は JavaScript で関数を作成するための推奨される方法であると言われています。時々反対のことを言ったので、よくわかりませんが、今のところ表現にとどまります。

しかし、例として見つけられなかった式についてのことが1つあります。くだらない質問かもしれませんが、知りたいです。次のような関数式があると仮定しましょう

var nav = {
    init: function() {
        // Code
    }, 
    open: function() {
        // Code
    },
    close: function() {
        // Code
    }
};

その場合、それはドロップダウンナビゲーションなどの機能です。例として、開いたり閉じたりできるはずです。今、私はあなたに尋ねています、そのコードで変数をどのように定義すれば、「open」、「close」、「init」関数の両方でそれらを使用できますか? その特定のケースでは、おそらく次のような変数が必要です。

var
    $nav = $(".nav"),
    navHeight = $nav.height(),
    navTest = "Test";

通常はどのようにしますか?この質問は他の場所で既に回答されている可能性がありますが、間違ったキーワードを検索したためか、実際には何も見つかりませんでした.

誰かが私に説明してくれたり、チュートリアルへのリンクを送ってくれたりしたら、本当に感謝しています-javascript関数の初心者向け:)

ありがとう :)

4

2 に答える 2

1

オブジェクトのプロパティとして関数を作成していますnav。これらの関数とともに、変数を他のプロパティとして簡単に追加できます。

var nav = {
    myHeight: 12,
    height: function() {
        return this.myHeight;
    },
    increaseHeight: function(howMuch) {
        this.myHeight += howMuch;
    }
    init: function() {
        // use this.myVariable here
    }, 
    // ...
};
于 2013-06-20T23:36:15.540 に答える
1

オブジェクトのメソッドに対して共有変数を非公開にするクロージャーに共有変数を保持できます。一般的な手法はモジュール パターンです。

Javascript のプライベート メンバーにも興味があるかもしれません。

于 2013-06-20T23:42:00.660 に答える