作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 JavaScript 类(class)...
class MyClass{
static createElement(selector, settings = {
name : 'element',
enabled : true,
color : '#EAEAEA'
}){
name = settings.name;
enabled = settings.enabled;
color = settings.color;
// Do something...
}
static destroyElement(selector){
// Do something...
}
}
有两种静态方法,一种用于创建元素,另一种用于销毁元素。两种方法都接收对象选择器作为第一个参数,创建方法接收对象配置的第二个可选参数。
因此假设应允许以下配置:
MyClass.createElement(selector); // If you want to create an element with the default settings. (name: 'element', enabled: true and color: '#EAEAEA')
MyClass.createElement(selector, { name : 'element1' }); // A new element is created independent of the previous one but with the same configurations, it only changes the name.
MyClass.createElement(selector, { // Another independent element that changes the name and is deactivated, but that keeps the default color #EAEAEA
name : 'element2',
enabled : false
});
有什么问题吗?如果我创建一个元素,留下 settings
默认情况下参数,一切正常,但如果我创建一个对象并更改 settings
之一参数...
...createElement(selector, { name : 'element1' });
然后其他参数(启用和颜色)获取值 undefined
当他们应该保留默认值(true 和#EAEAEA)并且只应该更改 name
的值时
最佳答案
第二个参数是您要完全替换而不是合并的对象。
这样做怎么样:
static createElement(selector, settings = {}){
settings = {
// here is your default settings
name : 'element',
enabled : true,
color : '#EAEAEA',
// merging the parameter
...settings
}
name: settings.name,
enabled: settings.enabled,
color: settings.color,
}
关于javascript - 更改方法的可选参数值时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55859368/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!