我正在使用文字符号制作JavaScript对象,但我不确定如何使对象接收这样的参数:
hi.say({title: "foo", body: "bar"});
而不是hi.say("foo", "bar");
。
当前代码:
var hi = {
say: function (title, body) {
alert(title + "\n" + body);
}
};
我想要的原因是因为我希望人们能够跳过标题并放置正文,并为许多其他参数做同样的事情。
这就是为什么我需要像我们如何使用jQuery函数的参数{parameter:"yay", parameter:"nice"}
P.S。我也打开修改当前方法 - 记住会有很多参数,一些是必需的,一些是可选的,而且不能以特定的方式进行排序。
答案 0 :(得分:6)
没有特殊的参数语法,只需使该函数采用单个参数,这将是一个对象:
var hi = {
say: function(obj) {
alert(obj.title + "\n" + obj.body);
}
}
答案 1 :(得分:1)
这样的事情应该有效:
var hi = {
say: function(options) {
if (options.title) alert(options.title + "\n" + options.body);
else alert('you forgot the title!');
}
}
hi.say({ //alerts title and body
"title": "I'm a title",
"body": "I'm the body"
});
hi.say({ //alerts you for got the title!
"body": "I'm the body."
});
答案 2 :(得分:0)
var hi = {
say: function( opts ) {
var title = (opts.title)?opts.title:"default title";
var body = (opts.body)?opts.body:"default body";
// do whatever with `body` and `title` just like before
// ...
}
};