【发布时间】:2011-04-29 12:40:15
【问题描述】:
谁能解释一下如何在 jQuery/Javascript 中将函数转换为方法,将变量转换为对象的参数?
更有趣的是为什么我应该这样做?
【问题讨论】:
-
你的“我为什么要那样做”可以翻译成“为什么使用 OOP”
标签: javascript jquery function methods object
谁能解释一下如何在 jQuery/Javascript 中将函数转换为方法,将变量转换为对象的参数?
更有趣的是为什么我应该这样做?
【问题讨论】:
标签: javascript jquery function methods object
有(除其他外)关闭技巧:
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 并不容易(也许不可能,但我不确定)。
【讨论】:
在 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);
var MyClass = $.Class.create({
initialize: function(x, y) {
this.x = x;
this.y = y;
}.
foo: function(z) { ... },
bar: function() { ... }
});
【讨论】: