javascript传递参数作为对象或类似的东西

时间:2013-05-07 09:05:49

标签: javascript

我想创建一个类似" MessageBox"的课程。在调用Show()函数时,我将传递所需的参数。像:

MessageBox.Show(
{
  str : "Are you sure?",
  onYes : function(){
   //do something
  },
  onNo: function(){
   // Do another stuff
  }
});

我尝试了什么:

var MessageBox = {
  Show : function(){ // I stuck here
   }
}

我们假设在节目中正在调用JavaScript confirm()函数。

5 个答案:

答案 0 :(得分:1)

只需将对象作为参数传递:

Show: function(obj) {
  var str = obj.str;
  ...
}

答案 1 :(得分:1)

你可以传递它,比如

var MessageBox = {
  Show : function(params){ // I stuck here
    console.log(params.str); //would give you "Are you sure?"
 }
}

答案 2 :(得分:1)

应该是这样的:

var MessageBox = {
  Show : function(opts){ // I stuck here
      var result = confirm(opts.str);
      if (result) {
        opts.onYes();
      } else {
        opts.onNo();
      }
   }
}

答案 3 :(得分:1)

尝试这样的事情:

var MessageBox = function() {
    var str = 'put your private variables here';
};

MessageBox.prototype.Show = function(arg) {
    console.log(arg);
};

答案 4 :(得分:0)

您可以执行以下操作(包括进行一些检查,以便onYes和onNo函数是可选的:

var MessageBox = {
    Show: function(args) {
        var answer = confirm(args.str);
        if ((answer) && (typeof args.onYes === "function")) {
            args.onYes();
        }
        else if (typeof args.onNo === "function") {
            args.onNo();
        }
    }
 };

然后你可以按照自己的意愿使用它:

MessageBox.Show({
   str: "Are you sure?",
   onYes: function(){
    //do something
   },
   onNo: function(){
      // Do another stuff
   }
});