如何将jQuery / Javascript函数转换为方法

时间:2010-10-23 09:04:04

标签: javascript jquery function methods object

有没有人可以解释如何将函数转换为方法,将变量转换为jQuery / Javascript中对象的参数?

更有趣为什么我应该这样做?

2 个答案:

答案 0 :(得分:3)

有(其中包括)关闭技巧:

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并不容易(可能不可能,但我不确定)。

答案 1 :(得分:3)

在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 plugin

var MyClass = $.Class.create({
  initialize: function(x, y) {
    this.x = x;
    this.y = y;
  }.
  foo: function(z) { ... },
  bar: function() { ... }
});