Как превратить функции jQuery / Javascript в методы - PullRequest
3 голосов
/ 23 октября 2010

Может ли кто-нибудь объяснить , как превратить функции в методы и переменные в параметры объекта в jQuery / Javascript?

И еще интереснее Почему мне следуетсделать это?

Ответы [ 2 ]

3 голосов
/ 23 октября 2010

в jQuery:

var MyClass = function( x, y ) {
  this.x = x;
  this.y = y;
};
$.extend(MyClass.prototype, {
  foo: function(z) { ... },
  bar: function() { ... }
});

, чем вы могли бы:

var myObject = new MyClass(1, 2);

или с HJS плагином :

var MyClass = $.Class.create({
  initialize: function(x, y) {
    this.x = x;
    this.y = y;
  }.
  foo: function(z) { ... },
  bar: function() { ... }
});
3 голосов
/ 23 октября 2010

Существует (среди прочего) уловка закрытия:

function obj(x, y) {
    var z = 0;

    return {
        foo: function() { z += x; return z; },
        bar: function() { z *= y; return z; }
    };
}

o = obj(2, 3);
o.foo();

Этот конкретный подход имеет то преимущество, что он достаточно хорошо скрывает внутреннее состояние.Нелегко (возможно, невозможно, но я не уверен) непреднамеренно повозиться с z прямо снаружи «объекта».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...