我有一个对象关联数组,我想通过许多功能对其进行扩展。myCtrls //Array of objects
我通过以下循环来做到这一点
$(document).ready(function(){
为(fieldCtrls中的ctrlName){
var ctrl = fieldCtrls [ctrlName];
ctrl.Initialize = function(){
//做点事
ctrl.someProperty =“ newValue”;
}
ctrl.Validate = function(){
//做更多的事情
ctrl.someProperty =“验证成功”;
}
}
稍后,我执行这样的函数。但是,变量“ ctrl”现在始终指向“ fieldCtrls”中的最后一个对象。如何使变量“ ctrl”在“ initialize()”和“ Validate()”内部工作?
fieldCtrls ['id']。Validate();
最佳答案
范围将更改为调用对象-fieldCtrls['id']
。因此,您应该能够使用this
访问内部属性。
ctrl.Validate= function(){
//Do some more stuff
this.someProperty = "validation ok";
}