0

最近、ほとんど知識のない状態で JavaScript をコーディングしています。

そして、これが今朝書いた最初の JavaScript コードです。

$(window).load(function(){
    SubMenuHandler.init();
});

var SubMenuHandler = {
    init : function() {
        $("#statisticManager, #deviceManager, #policyManager").click(
            function(event) {
                var url = SubMenuHandler.getUrlFromEvent(event); // <-- These two
                SubMenuHandler.redirectPage(url);                // <-- lines
            }
        );
    },
    redirectPage : function(url) {
        $(location).attr("href", url);
    },
    getUrlFromEvent : function(event) {
        var target = event.target;
        var url = $(target).data("url");
        return url;
    }
}

ご覧のとおりSubMenuHandler、クラス内で再帰的に呼び出されます。

しかし、これがどのように行われるかはわかりません。他の言語での私の経験から、静的変数にアクセスする場合を除いて、通常this、クラスのフルネームを使用する代わりにキーワードを使用します。

この仕事を行うための同様の方法またはより良い方法はありますか?

4

1 に答える 1

3
init : function() {
    var me = this; // <----- this is the magic
    $("#statisticManager, #deviceManager, #policyManager").click(
        function(event) {
            var url = me.getUrlFromEvent(event);

            me.redirectPage(url);
        }
    );
},

それは「閉鎖」と呼ばれます

グーグルからのランダムリンク:http ://www.javascriptkit.com/javatutors/closures.shtml

そしてここSOで完璧な答え:https ://stackoverflow.com/a/111200/251311

于 2012-05-10T00:33:23.157 に答える