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

发布于 2024-09-28 20:47:46 字数 113 浏览 2 评论 0原文

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

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

Could anyone explain how to turn functions into methods and the variables into parameters of an object in jQuery/Javascript?

And even more interesting Why i should do that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

祁梦 2024-10-05 20:47:46

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

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

There is (among others) the closure trick:

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();

This particular approach has the advantage that it hides internal state reasonably well. It is not easy (maybe impossible, but I'm not sure) to inadvertently tinker with z directly from outside the "object".

心如狂蝶 2024-10-05 20:47:46

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

in jQuery:

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

than you could:

var myObject = new MyClass(1, 2);

or with HJS plugin:

var MyClass = $.Class.create({
  initialize: function(x, y) {
    this.x = x;
    this.y = y;
  }.
  foo: function(z) { ... },
  bar: function() { ... }
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文