作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
绞尽脑汁试图获得最佳结果。假设我有一个将对象作为参数并像这样销毁它的函数:
myfunc = (options = {a:true, b:true, c:true}) => {...}
默认情况下 a b 和 c 为真。但是假设我调用 myfunc
并希望 b 为假:
myfunc({b:false})
现在好了 options.b === false
,但是 a 和 c 的值不见了。有没有办法在不传递默认值副本的情况下完成此操作?
我试过一些奇怪的东西
myfunc = (options = Object.assign({a:true, b:true, c:true}, options)) =>{}
但这肯定是不对的。
最佳答案
您可以在不使用选项
的情况下,使用默认对象对具有默认值的所需属性进行解构。然后使用简写属性创建一个新的。
对于其他对象,您可以使用 newer 或 babeljs,对象的 rest 属性。
var myfunc = ({ a = true, b = true, c = true, ...rest } = {}) => {
const option = { a, b, c, ...rest };
console.log(option);
};
myfunc(); // take {} as default and the default values inside of the object
myfunc({ b: false }); // take b and default values
myfunc({ foo: 42 }); // take foo and all default values
.as-console-wrapper { max-height: 100% !important; top: 0; }
关于javascript - 解构可选函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52394205/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!