如果我有这样的功能:
function doSomething(opt)
{
}
我这样称呼它:
doSomething({a: 234, b: 567});
是否有与PHP extract()函数等效的Javascript,所以我可以这样做:
function doSomething(opt)
{
extract(opt);
alert(a); // 234
alert(b); // 567
}
不再建议使用with()语句,并且使用'this'变量访问全局作用域-而不是函数作用域。
更新:
目前,我正在像这样手动提取:
function doSomething (opt)
{
var a = opt.a,
b = opt.b;
}
答案 0 :(得分:3)
您可以使用ES6解构:
function doSomething({a, b})
{
alert(a);
alert(b);
}
或
function doSomething(opt)
{
const {a, b} = opt;
alert(a);
alert(b);
}
答案 1 :(得分:1)
解构是一种方法。下面是另一种方法。
JavaScript有一个称为Rest参数的概念。...在数组中收集其余参数。这意味着什么?
function doSimething(...items) {
items.forEach(() => {
// you can do stuff with each of the items.
});
}
您可以称之为 doSimething(1); doSomething(3,5,h);
这种方法可以帮助您使函数更加通用并在更多地方使用。
Additional information on JavaScript rest / spread parameters
答案 2 :(得分:-1)
function extract(data, where) {
for (var key in data) {
where[key] = data[key];
}
}
function doSomething(object) {
extract(object, this);
}