我從下面的函數創建了一堆新的對象。然後,從一個循環中,循環遍歷每個循環,並調用方法toggleValid()和toggleErrMsg()。在toggleErrMsg()中,如果object.errMsgStatus的值爲false,它應該將其值更改爲true,但它不會。爲什麼?'this.variable'不變?
function InputField(field, cssTarget, value, errMsg, validator) {
var self = this;
this.field = field,
this.cssTarget = cssTarget,
this.value = value,
this.valid = false,
this.errMsg = errMsg,
this.errMsgStatus = false,
this.validator = validator,
this.toggleErrMsg = function() {
if(self.valid === false && self.errMsgStatus === false) {
self.errMsgStatus = true;
renderValidationError(self, false);
} else {
self.errMsgStatus = false;
renderValidationError(self, true);
}
}
this.toggleValid = function() {
self.validator();
if(!self.valid) {
self.cssTarget().addClass("inputInvalid");
} else {
self.cssTarget().removeClass("inputInvalid");
}
}
}
此構造函數如何初始化以及如何這些方法叫什麼名字? – n0mercy 2014-10-28 10:08:54