【问题标题】:How to turn jQuery/Javascript functions into methods如何将 jQuery/Javascript 函数转换为方法
【发布时间】:2011-04-29 12:40:15
【问题描述】:

谁能解释一下如何在 jQuery/Javascript 中将函数转换为方法,将变量转换为对象的参数?

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

【问题讨论】:

  • 你的“我为什么要那样做”可以翻译成“为什么使用 OOP”

标签: javascript jquery function methods object


【解决方案1】:

有(除其他外)关闭技巧:

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

【讨论】:

    【解决方案2】:

    在 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() { ... }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-13
      • 2016-03-31
      • 2015-04-09
      • 2017-06-28
      • 1970-01-01
      相关资源
      最近更新 更多