wen*_*een 1 javascript ecmascript-6
假设我有一个函数(可能来自第三方库,假设我无法更改其定义),以及一个具有与函数参数匹配或重叠的属性的对象:
function fn(foo, bar, baz) { /* do stuff */ }
var obj = { foo: "yes", bar: 7, baz: false }
Run Code Online (Sandbox Code Playgroud)
有没有办法使用某种解构或扩展赋值或其他一些 ES6 功能来将对象属性应用为函数参数,或者我是否坚持单独指定每个参数?
fn(...obj); // Doesn't work
fn(obj.foo, obj.bar, obj.baz); // Convoluted but works
fn.apply(null, obj.values()); // Might work if you're lucky
Run Code Online (Sandbox Code Playgroud)
您可以为以下内容创建一个包装函数fn
:
const myFn = ({foo, bar, baz}) => fn(foo, bar, baz);
Run Code Online (Sandbox Code Playgroud)
然后你的调用就简化为:
myFn(obj);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
365 次 |
最近记录: |