我有一个对象关联数组,我想通过许多功能对其进行扩展。
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";
}

09-06 06:32