javascript - отправка параметра в функцию - PullRequest
0 голосов
/ 21 апреля 2011

У меня есть это:

var MyObject = {};

MyObject.doStuff = function(someParam) {
   var webdav = new Webdav("addr","port");    

   var handler = {
      onSuccess: MyObject.Success,
      onError: MyObject.Fail
   }

   webdav.PUT(handler, filename, options);
}

MyObject.Success = function(result) {
    alert('status ' + result.status + result.statusstring);
}

Я использую exo platform Библиотека javascript для доступа к webdav (если это имеет значение)

Обработчик, который я создаю, будет вызывать MyObject.Success, если webdav.PUT выполнен успешно. Как я тоже могу отправить someParam этой функции?

Другими словами, после успешной или неудачной операции мне интересно что-то делать с someParam, в зависимости от результата.

Ответы [ 3 ]

1 голос
/ 21 апреля 2011

Это может быть то, что вы ищете: функция обратного вызова JavaScript и параметры

или, может быть: http://onemarco.com/2008/11/12/callbacks-and-binding-and-callback-arguments-and-references/

var someParam = 'foo';
var handler = {
     onSuccess: function(result) {success(result, someParam);},
     onError: function() { fail(); }
    }
1 голос
/ 21 апреля 2011

Один простой способ сделать это, используя закрытие JavaScript:

var handler = {
   onSuccess: function(result) { MyObject.Success(result, someParam); },
   onError: MyObject.Fail
}
1 голос
/ 21 апреля 2011

Вы должны изучить объекты javascript и попытаться разместить код в одной области видимости.Как то так:

var MyObject = {

    var doStuff = function(someParam) {
        var webdav = new Webdav("addr","port");    

        var handler = {
          onSuccess: function(result) {success(result, someParam);},
          onError: function() { fail(); }
        }

       webdav.PUT(handler, filename, options);
    }

    var success = function(result, someParam) {
        alert('status ' + result.status + result.statusstring);
    }

    var fail = function() {}

    this.doStuff = doStuff;
}

var myObj = new MyObject();
myObj.doStuff(param);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...