我想创建一个类似" 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()
函数。
答案 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
}
});