0

我想创建一个像“ MessageBox”这样的类。在调用该Show()函数时,我将传递所需的参数。喜欢:

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

我尝试了什么:

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

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

4

5 回答 5

1

应该是这样的:

var MessageBox = {
  Show : function(opts){ // I stuck here
      var result = confirm(opts.str);
      if (result) {
        opts.onYes();
      } else {
        opts.onNo();
      }
   }
}
于 2013-05-07T09:10:36.627 回答
1

尝试这样的事情:

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

MessageBox.prototype.Show = function(arg) {
    console.log(arg);
};
于 2013-05-07T09:10:42.833 回答
1

只需传递一个对象作为参数:

Show: function(obj) {
  var str = obj.str;
  ...
}
于 2013-05-07T09:09:34.833 回答
1

你可以通过它,比如

var MessageBox = {
  Show : function(params){ // I stuck here
    console.log(params.str); //would give you "Are you sure?"
 }
}
于 2013-05-07T09:10:09.403 回答
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
   }
});
于 2013-05-07T09:17:57.477 回答