mvc-1 mvcとクラス(2)

1236 ワード

プライベート関数の追加
var Person = function() {};
(function() {
  var findById = function(){};
  Person.find = function(id) {
    if(/**/) {
      return findById(id);
    }
    //......
  }
})();

関数呼び出し-役割ドメイン
  • selfを使用してthis
    var clicky = {
        wasClicked: function () {},
        addListeners: function() {
            var self = this;
            $(".clicky").click(function() {
            //      ,        
                self.wasClicked();
            })
        }
    }
    clicky.addListeners();
  • を一時保存
  • applyを使用して元のコンテキスト
    //  jquery.proxy;
    var proxy = function(func, thisObject) {
      return(function() {
      	//     arguments           jquery.event;
        return func.apply(thisObject, arguments);
      });
    }
    var clicky = {
      wasClicked: function() {alert(1)},
      addListeners: function() {
        $(".clicky").click(proxy(this.wasClicked, this));
      }
    }
    clicky.addListeners();
  • を保持する.
  • '依頼'呼び出し
    var App = {
      log: function() {
      	if(typeof console == "undefined") return;
      	var args = $.makeArray(arguments);
      	args.unshift("(App)");
      	//   console,              ;
      	console.log.apply(console, args);
      }
    }
    App.log(0,1);