【发布时间】:2018-04-21 12:21:08
【问题描述】:
我展示了两种模式:
模式 A:参数先前保存在变量中。
方式B:参数直接传递。
这里我展示2个案例:
案例1:没有串联的参数
//Mode A:
const msg = this.test.fullTitle();
return helper.error(msg, err, done);
//Mode B:
return helper.error(this.test.fullTitle(), err, done);
案例 2: 连接参数
//Mode A:
const msg = this.test.fullTitle() + ' welcome';
return helper.error(msg, err, done);
//Mode B:
return helper.error(this.test.fullTitle() + ' welcome', err, done);
问题:
哪种模式值得推荐、可读、高效还是只是个人风格?
【问题讨论】:
-
我认为 javascript 不支持开箱即用的名称传递。所以各种传球风格没有区别。此外,字符串在 javascript 中是不可变的。错误函数不可能改变 msg 变量,即使它不是 const。
-
至于可读性,同样 javascript 不允许命名参数(即
f(error="msg")。另一种方法是简单地将对象文字传递给函数。f({error : "msg"})。
标签: javascript function parameter-passing