es6 export 的 function 不能指定参数传参吗?

//file.js
export const f = function (a,b) {
    console.log(a)
    console.log(b)
}
//main.js
import * as foo from "file.js"
foo.f(b=1);

Uncaught ReferenceError: b is not defined
//报错在 foo.f(b=1)这行.
阅读 8.4k
3 个回答

应该是在函数声明的时候,赋默认值吧?

//file.js
const f = function (param) {
    console.log(param.a)
    console.log(param.b)
}
//main.js
import * as foo from "file.js"
let param = {a:null,b:1}
foo.f(param);

我也是新手,可以这样写试试

javascript即使ES6也没有这种写法。
但是可以这样:

var f = ({a,b}) => { 
    console.log({a,b}); 
    // 这就可以只用b了
    console.log('我是b:', b)
}; 
f({b:1})

输出:

{ a: undefined, b: 1 }
我是b 1

这种写法实际上运用到了析构,而且恰好运用在函数参数上。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏