Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将jQuery/Javascript函数转换为方法_Javascript_Jquery_Function_Methods_Object - Fatal编程技术网

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

如何将jQuery/Javascript函数转换为方法,javascript,jquery,function,methods,object,Javascript,Jquery,Function,Methods,Object,有人能解释一下如何在jQuery/Javascript中将函数转换为方法,将变量转换为对象的参数吗 更有趣的是,为什么我应该这样做?还有(除其他外)结束技巧: 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.

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

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

还有(除其他外)结束技巧:

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

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);
或与:

你的“我为什么要那样做”可以翻译成“为什么要使用OOP”
var MyClass = $.Class.create({
  initialize: function(x, y) {
    this.x = x;
    this.y = y;
  }.
  foo: function(z) { ... },
  bar: function() { ... }
});