0

私はJavaScriptの名前空間を理解しようとしています...いくつかの関数を書き、以下のような名前空間でそれらを保護したいと思います..しかし、私はそれをうまく理解していないと思います..これはあまりにも単純な質問ですが、私には明らかです。なぜそれが機能しないのかがわかれば..

ここで私が試している経験:

var myApp = { 
    getTxt: function(x){
        x.click(function(){
        var txt = $(this).html();
        alert(txt);
        });
    };    
};

myApp を呼び出します。

var box = $('.js-box');
alert(myApp.getTxt(box));

MyApp は正しく作成されていると思いますが、getTxt 関数の呼び出しと起動についてはわかりません。

それを呼び出す:

  myApp.getTxt(box)

x.click関数を起動するという意味ではありません..?なぜ物体を回転させるのですか?

ここで何が間違っていますか?ありがとう!

http://jsfiddle.net/67b02cht/1/

4

2 に答える 2

0

モジュール式のアプローチはどうですか。

var MyApp = MyApp || {};
MyApp.Module = (function () {
  function App() {
  }
  App.prototype.getTxt = function(x){
    //your code here
  }
  return App;
})();

次のように使用します。

var box = $('.js-box');    
alert(new MyApp.Module.getTxt(box));
于 2014-08-24T08:27:24.413 に答える
0

あなたはmyAppオブジェクトとして定義しています. ここに問題が;あります. フィールドを定義した後に与えています. これはできません. 構文エラーが発生します。

var myApp = { 
    getTxt: function(x){
        x.click(function(){
        var txt = $(this).html();
        alert(txt);
        });
    }                //<<<<-------------here was a semicolon,
};

そして、次のような関数を呼び出すと、関数から何も返されないためalert、アラートが発生します。undefined電話するだけ

myApp.getTxt(box)

そして、クリックするとコンテンツが表示されます。

デモ

于 2014-08-24T06:50:58.247 に答える