假设我有一个类和一些像这样的静态辅助方法:
function MyClass (myVar) {
this.myVar = myVar;
this.replaceMe = function (value) {
// this will fail
this = MyClass.staticHelper( value );
return this;
}
this.revealVar = function () {
alert( this.myVar );
}
}
MyClass.staticHelper = function (instance, value) {
return new MyClass( instance.myVar + value );
}
我想做的是这样的:
var instance = new MyClass( 2 );
instance.revealVar(); // alerts 2
instance.replaceMe( 40 ).revealVar(); // alerts 42
原因是我的类的结构稍微复杂一些,我不想每次都手动分配所有内部变量,而是替换整个对象。有没有一种简单的方法可以做到这一点?