简体   繁体   English

javascript-向函数发送参数

[英]javascript - sending a parameter to a function

I have this: 我有这个:

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);
}

I'm using exo platform javascript library for webdav access (if it matters) 我正在使用exo平台 javascript库进行webdav访问(如果重要)

The handler I'm creating will call MyObject.Success if webdav.PUT is done succesfully. 如果成功完成webdav.PUT则我正在创建的处理程序将调用MyObject.Success How can i send the someParam to that function too? 我也该如何将someParam发送到该函数?

Put in another way, after a successful or failed operation, I'm interested in doing something with the someParam , depending of the result. 换句话说,在成功或失败的操作之后,我对根据结果对someParam做一些事情感兴趣。

You should look into javascript objects, and try to contain the code within one scope. 您应该研究javascript对象,并尝试将代码包含在一个范围内。 Something like this: 像这样:

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);

This may be what you'r looking for: javascript callback function and parameters 这可能是您要寻找的: javascript回调函数和参数

or maybe: http://onemarco.com/2008/11/12/callbacks-and-binding-and-callback-arguments-and-references/ 或: 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(); }
    }

One simple way to do it, taking advantage of JavaScript closures: 一种简单的方法,利用JavaScript闭包:

var handler = {
   onSuccess: function(result) { MyObject.Success(result, someParam); },
   onError: MyObject.Fail
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM