-1

私はjavascriptに関する本を読んでおり、例の1つに、例で使用されるこれら2つのコードブロックが表示されています:

    showTipListener: function(event)
    {
        Tooltips.showTip(this);
        Core.preventDefault(event);
    }
    hideTipListener: function(event)
    {
        Tooltips.hideTip(this);
    }

    var Tooltips = 
    {
        init: function()
        {
            var links = document.getElementsByTagName("a");

            for (var i = 0; i < links.length; i++)
            {
                //Every link is going to need a title attribute in the HTML
                var title = links[i].getAttribute("title");

                if (title && title.length > 0)
                {
                    Core.addEventListener(links[i], "mouseover", Tooltips.showTipListener);
                    Core.addEventListener(links[i], "focus", Tooltips.showTipListener);
                    Core.addEventListener(links[i], "mouseout", Tooltips.showTipListener);
                    Core.addEventListener(links[i], "blur", Tooltips.showTipListener);

                }
            }
        }}//I also had to add this extra closing bracket to avoid errors? Don't understand why
    }

私が心配しているのは、最初のコード サンプルが 2 番目のコード サンプルを参照してどこに行くのかということです。

JavaScript 関数を定義するために (2 番目のコード サンプルに見られるように) この構文を使用したことはありません。

    functionName: function(passedParam)
    {
        //function body
    }

上記は単なる例であり、私のコードの一部ではありません。

これらの関数は Tooltips オブジェクト内にあるのでしょうか? これは私の考えだったので、ToolTips オブジェクトの括弧内に 2 つの関数を配置しました。今、私は FireBug でこのエラーを受け取ります: 私の FireBug エラー

私は、誰かが提供しなければならない助けとガイダンスを探しています。私はJavaScriptは初めてではありませんが、この方法で関数を定義するのは初めてです。

4

3 に答える 3

2

見てみましょう:

var whatever = {                  //object
    add: function(a, b){            //function 1
        return a + b;
    },
    minus: function(a, b){          //function 2
        return a - b;
    }
}

whatever.add(1,1); //returns 2
whatever.minus(1,1); //returns 0

これは、関数を定義する新しい方法ではありません。これは、オブジェクトのプロパティ (またはそれを呼び出すもの) を関数に設定するだけで、次のようになります。

var whatever = {
    city: "NYC",
    date: +new Date()
};
于 2012-11-15T04:57:22.680 に答える
0

Tooltips上の 2 つの関数は、2 番目のスニペットで呼び出される方法であるため、明らかにオブジェクトのメンバーです。見る

Core.addEventListener(links[i], "mouseover", Tooltips.showTipListener);

最初のスニペットは次のように意味があります

var Tooltips = {
    showTipListener: function(event)
    {
        Tooltips.showTip(this);
        Core.preventDefault(event);
    }
    hideTipListener: function(event)
    {
        Tooltips.hideTip(this);
    }
};
于 2012-11-15T04:57:37.970 に答える
0

この 2 つのリソースを見てみましょう。JavaScript をより適切に記述するための優れたヒントがいくつかあります。

https://github.com/rwldrn/idiomatic.js/

http://shichuan.github.com/javascript-patterns/

于 2012-11-15T04:58:06.887 に答える